2017-10-14 4 views
2

Ich versuche, ein Palm-Check-Programm (ein Programm, das die Maus deaktivieren, wenn ich tippe) zu machen. und ich frage mich, ob es eine Möglichkeit gibt, alle Buchstaben (Groß- und Kleinbuchstaben) und Zahlen einen Code auszulösen, um die Maus für 300 Millisekunden zu deaktivieren (ich schrieb 5000, um es zu testen) und immer noch die Buchstaben und ZahlenDeaktivieren Sie die Maus mit einem Schlüssel in Autohotkey

verwenden können

Hier ist der Code

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

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

wie Sie sehen können, habe ich den Brief (a) auslösen den Code, aber ich werde es nicht + i wird den Code immer wieder zu wiederholen, verwenden können, haben für mehr als 50 Zeichen

kann mir bitte jemand helfen, dieses Problem zu lösen?

  • Ich habe eine Lösung für 2 Stunden suchen vor der Veröffentlichung dieses also bitte nicht als
  • wiederholt berichten

Antwort

0

Sie könnten den Eingang Befehl versuchen, setzen Sie ihn auf 1 Zeichenlänge und sichtbar. Sie müssen wahrscheinlich den Trigger-Teil und den Suspend/Sleep-Teil teilen, da ich erwarte, dass der Trigger-Teil nicht erneut ausgelöst werden kann, wenn er das frühere Trigger-Ereignis aufgrund Ihrer Schlaf-Befehle nicht beendet hat. Ich schlage vor, Sie schauen in den settimer Befehl, um den Schlafbefehl zu ersetzen. Entschuldigung, ich kann dir mit keinem Code helfen, ich schreibe das auf meinem Handy und mache Vorschläge auswendig.

UPDATE:

der Eingabebefehl Karo, nicht die Art und Weise funktionierten ich erwartet hatte. Ich schlage vor, dass Sie Ihre Triggerschlüssel automatisch definieren, wie sie es hier tun: https://autohotkey.com/board/topic/30294-simple-key-stroke-recorder/page-2.

Ich habe etwas basteln Code für Sie mit hier zu spielen. Es löst derzeit nur auf dem Buchstaben q aus, aber mit der Schleife im Tastenanschlag-Recorder, sollten Sie in der Lage sein, dies zu erreichen.

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

können Sie mir bitte zeigen, wie wird der Code aussehen, weil ich mit dem Befehl versucht ** ** Eingang und ich konnte nicht verstehen, wie es – Mx2002

+0

Und MX2002 funktioniert, War es hilfreich? und wo können Sie es mit dem Keylogger-Trick kombinieren, um alle Zeichen als Trigger in einer einfachen Schleife zu definieren? –

1

Try this:

#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

Dies ist eine ausgezeichnete Lösung und sollte als die richtige Antwort markiert werden. – HaveSpacesuit

Verwandte Themen