2013-06-11 25 views
5

W skrócie: Jak napisać skrypt z automatycznym kluczem, aby po naciśnięciu, powiedzmy, F1, nacisnąć przycisk myszy i puścić go dopiero po zwolnieniu klawisza?Autohotkey Przytrzymanie przycisku myszy przy naciśniętym klawiszu?

Zrobiłem kilka badań na obu forach autohotkey (które przekierowują tutaj dla zadawania pytań) i przeczytałem dokumentację, ale nie jestem programistą i mam trudny czas chwytając pętle.

Próbowałem robić while czy if (GetKeyState („F1”), pętle, ale stawał się coraz to źle, aż wreszcie ja skończyło się z tego skryptu, która prawie działa.

F2::Click down right 
F2 Up::Click up right 
F1::Click down 
F1 Up::Click up 

Kiedy mówię prawie Mam na myśli to, że nie przytrzymuje przycisku myszy, ale zamiast tego kliknięcie myszki jest niesamowicie szybkie, wystarczająco dobre dla większości sytuacji, takich jak gry, gdzie jest to w zasadzie odpowiednik trzymania przycisku myszy lub przeciągania okien, ale kiedy Chcę podświetlić długi akapit, to nie działa Po drugiej sekundzie cała rzecz zaczyna mrugać lub selekcja resetuje się, wybiera w środku itp. Zasadniczo robi to, co normalnie by się działo, gdybyś tylko klikał przycisk myszy r eally naprawdę szybko.

Jest to również takie samo rozwiązanie jak pisał w tym pytaniu How to Hold Down Mouse while Key is Pressed?

Początkowo pisał pod nim kolejne pytanie, ale najwyraźniej nie jest to dozwolone i zrobiło usunięta więc muszę tworzyć kolejne pytanie z identyczne imię, ponieważ chcę tego samego.

Proszę o pomoc lub wyjaśnij, co robię źle.

+0

To jest duplikat http://stackoverflow.com/questions/14227649/how-to-hold-down-mouse-while-key-is-pressed - ale jest lepszym pytaniem. – bgmCoder

Odpowiedz

9
F1:: 
    if(not GetKeyState("LButton" , "P")) 
     Click down 
return 

F1 Up::Click up 

i samo dla prawego kliknięcia

+0

Wiedziałem, że przeoczyłem coś łatwego, ale nie mając doświadczenia z kodowaniem, jedynie podstawowe zrozumienie tego, jak działają, nie mogłem właściwie objąć głowy problemem. Dziękuję bardzo za czyste i uporządkowane rozwiązanie. Nigdy bym nie pomyślał o dodaniu czeku, aby sprawdzić, czy przycisk nie jest już wciśnięty. Sprytny. – Fum

0
F1:: 
if(not GetKeyState("LButton" , "P")) 
    Click down 
return 

F1 Up::Click up 

To zaoszczędziło mi € dla części sprzętu !!! Jesteś moim nowym najlepszym przyjacielem!