2017-10-14 12 views
2

팜 체크 프로그램 (입력 할 때 마우스를 사용할 수 없게하는 프로그램)을 만들려고합니다. 모든 문자 (대문자 및 소문자)와 숫자를 할당하여 300 밀리 초 동안 마우스를 사용할 수 없도록 코드를 트리거하는 방법이 있는지 궁금 해서요 (테스트를 위해 5000 건 작성) 문자와 숫자를 계속 사용할 수 있습니다.오토 핫키에서 키를 사용하여 마우스를 사용하지 않음

여기

당신이 볼 수있는 코드

lbutton:: 
rbutton:: 
WheelUp:: 
WheelDown:: 
suspend, on 

a:: 
suspend, off 
BlockInput, MouseMove 
sleep 5000 
suspend, on 
BlockInput, MouseMoveoff 
return 

, 나는 (a)는 코드를 실행하지만 난 그것을 사용할 수 없습니다 + 내가 다시하고 코드를 다시 반복해야합니다 편지를 만들어 50 자 이상

누구든지이 문제를 해결할 수 있습니까?

  • 내가

답변

0

반복으로이 그래서 당신은 입력 명령을 시도해 볼 수도 있습니다보고하지 마세요 게시하기 전에 2 시간 동안 솔루션을 찾고 있었어요 1 개 문자 길이로 설정하고 명백한. 잠자기 명령으로 인해 이전 트리거 이벤트가 완료되지 않은 경우 트리거 부분을 다시 트리거 할 수 없으므로 트리거 부분과 일시 중지/절전 부분을 분리해야 할 수 있습니다. sleep 명령을 대체하기 위해 settimer 명령을 조사 해보는 것이 좋습니다. 죄송합니다. 어떤 코드로도 당신을 도울 수 없으며, 저는 이것을 전화로 쓰고 있으며, 마음으로 제안하고 있습니다.

UPDATE :

내가 예상대로 작동하지 않았다, 입력 명령을 검사하였습니다. 그들이 여기서하는 것처럼 자동으로 트리거 키를 정의하는 것이 좋습니다 : https://autohotkey.com/board/topic/30294-simple-key-stroke-recorder/page-2.

나는 여기에서 놀 수있는 팅커 코드를 만들었습니다. 현재 문자 q 만 트리거되지만 키 입력 레코더의 루프를 사용하면이 작업을 수행 할 수 있습니다.

SoundBeep, 1000,100 ; Just to check 
BlockMouse := 0 
return 

$q:: ; $ prevents the next command from triggering this again 
    SendInput, q 
    BlockMouse := 1 
    SetTimer, UnBlockMouse, 5000 ; Run UnBlockMouse after 500 ms 
Return 

UnBlockMouse: 
    SetTimer, UnBlockMouse, off ; Turn timer off 
    SoundBeep, 1000,100 ; Just to check 
    BlockMouse := 0 
Return 

#If (BlockMouse) ; If statement controls the behaviour based on the status of the variable BlockMouse 
    lbutton:: ; Disable button when BlockMouse variable is set to 1 
    rbutton:: ; Disable button when BlockMouse variable is set to 1 
    WheelUp:: ; Disable button when BlockMouse variable is set to 1 
    WheelDown:: ; Disable button when BlockMouse variable is set to 1 
#If 
+1

당신은 저를 보여주십시오 수있는 방법 것입니다 코드보기 내가 명령 ** 입력 **을 사용하여 시도하고 나는 그것이 – Mx2002

+0

그리고 MX2002 작동합니까 방법을 이해하지 못했기 때문에, 도움이 되었습니까? 키로거 트릭과 결합하여 모든 문자를 간단한 루프에서 트리거로 정의 할 수있는 곳은 어디입니까? –

1

하는이 시도 :

#NoEnv 
#SingleInstance Force 
#InstallkeybdHook 
#InstallMouseHook 
#UseHook 

keys:=["a","b","c","d","1","2","3","4"] ; .... 
for each, key in keys 
{ 
    hotkey,%key%, BlockMouse, on 
    hotkey,+%key%, BlockMouse, on 
} 
return 

BlockMouse: 
    ; suspend, off 
    Mouse_Blocked := true 
    BlockInput, MouseMove 
    Send %A_ThisHotkey% 
    SetTimer, UnBlockMouse, -300 
return 

UnBlockMouse: 
    ; suspend, on 
    BlockInput, MouseMoveoff 
    Mouse_Blocked := false 
return 

#If (Mouse_Blocked) 

    lbutton:: 
    rbutton:: 
    WheelUp:: 
    WheelDown:: 
    ; suspend, on 
    return 

#If 
+0

이것은 훌륭한 해결책이며 정답으로 표시해야합니다. – HaveSpacesuit