Wie bindet man eine Taste perfekt an die linke Maustaste?

996
長谷川夕実

Ich bin sehr neu bei AutoHotkey und möchte wissen, ob es möglich ist, eine Tastaturtaste mit der linken Maustaste zu verbinden. Wenn ich beispielsweise die Taste gedrückt halte, die dem linken Klick zugewiesen ist, würde ich so halten, als würde ich sie mit der linken Maustaste halten oder ziehen. Und wenn ich es freigebe, wird es auch veröffentlicht. Gibt es auch eine andere Möglichkeit als AutoHotkey?

Beispiel:

c:: MouseClick, Left 

Wenn ich jedoch Cklicke und gedrückt halte, wird der linke Klick rampon wiederholt, anstatt ihn niederzuhalten, solange ich gedrückt halte C.

Jede Hilfe wird sehr geschätzt.

0

2 Antworten auf die Frage

0
PloxPanda

MouseClick wird meistens zum Klicken auf einen bestimmten Ort verwendet und sieht meistens so aus

MouseClick, left, 55, 233 

Es funktioniert immer noch, wenn Sie diesen Code verwenden

c:: MouseClick, Left 

Es wird Click klicken, wenn Sie C drücken. Wenn Sie jedoch die C-Taste gedrückt halten, wird ständig ein Spam-Klick erzeugt. Sie können dieses Problem beheben, indem Sie Click, Down wie unten gezeigt verwenden

c:: Click, down 

Wenn Sie jetzt die C-Taste drücken, klicken Sie einmal und halten Sie sie gedrückt, während Sie die C-Taste gedrückt halten und wie die Maustaste betätigen

Weitere Informationen zur Funktionsweise der Mausklicks mit AHK finden Sie hier.

Erklären Sie Ihre Antwort mit der in diesem AHK-Skript verwendeten Syntax. Biswapriyo vor 5 Jahren 0
@Biswapriyo Dort gehen wir aufgeräumt abit stellt sich heraus, dass es MouseClick und Click gibt PloxPanda vor 5 Jahren 0
0
Abr001am

Nach dem, was von @Plox gegeben wird, was die Anforderungen dieses Beitrags nur halbwegs erfüllt, ist mehr zu klären, wenn wir erkennen, dass c:: MouseClick left,,,,, Dder Mechanismus nach dem gleichen Mechanismus funktioniert, der von verwendet wird:

c:: MouseClick left,,,,, D return 

Die AHK-Engine löst hier ein MouseDown aus, steigt aus diesem Thread aus und verbindet sich wieder mit der Benutzereingabe, wobei eine weitere Aktion abgewartet wird. Wenn der Schlüssel noch gehalten wird, geht AHK unendlich in dieselbe Routine, wenn es erkennt, dass der Hotkey ausgelöst wird immer noch gedrückt

Es können mehrere von zwei Palliativen verwendet werden:

  • Sie beschließen, AHK beschäftigt zu halten, bis derselbe Kay freigegeben wird:

    c:: MouseClick left,,,,, D Keywait, c, U MouseClick left,,,,, U return 
  • Oder Sie ziehen es vor, AHK-Interpreter außerhalb der gleichen Routine freizuhalten, indem Sie eine Gloval-Variable reservieren keybound, um zu verhindern, dass dieselbe Aktion erneut ausgeführt wird, wenn der Schlüssel noch nicht freigegeben wurde .

    #HotkeyInterval 0  keybound:=0  c:: if keybound return keybound:=1 MouseClick left,,,,, D return  c Up:: MouseClick left,,,,, U keybound:=0 return  

HotkeyInterval Ist einige Schwelle ausgeschaltet, um unerwünschte Warnungen zu vermeiden.