Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem AutoHotKey - sekvence tlačítek na levou myš

Zdar,

potřeboval bych v AutoHotKey udělat pomůcku.

Už mám napsáno toto:

#IfWinActive ahk_exe PPJDD.EXE
a::Send, !{F4}

Zde klávesa A vyšle ALT+F4 a aplikaci ukončí.

Neúspěšně ale hledám doubleclick pravé myši.

Dělá tu někdo v AutoHotKey?

Tak už jsem na to přišel.
Když použiji například klávesu Q

q::
Send {LButton down} // stisknutí levého myšítka
Sleep 25 // sleep thread 25ms
Send {LButton up} // puštění levého myšítka
Sleep 25
Send {RButton down} // stisknutí pravého myšítka
Sleep 25
Send {RButton up} // puštění pravého myšítka
Sleep 25
Send {RButton down}
Sleep 25
Send {RButton up}
return

Přesně toto makro potřebuji, aby mi prováděla levá myš!!!!!!!
Takže jsem napsal:

LButton::
Send {LButton down}
Sleep 25
Send {LButton up}
Sleep 25
Send {RButton down}
Sleep 25
Send {RButton up}
Sleep 25
Send {RButton down}
Sleep 25
Send {RButton up}
return

Nicméně neodpaluje se levý button, kde je problém?
Nějakým způsobem to souvisí s tím, že se v levém mouse buttonu odpaluje levý mousebutton.
Když to přemapuju na libovolné jiné tlačítko nebo pravé tlačítko myši, tak to funguje.
Tak v čem to je?

Předmět Autor Datum
Proč tam máš - chceš-li pravý doubleclick tyto řádky? Send {LButton down} Sleep 25 Send {LButton up…
L-Core 02.12.2017 09:42
L-Core
Ano, rád vysvětlím. Jednoduše chci, aby Rdvojkliku předcházel Lclick. Jako říkám, pokud to umístím…
Flash_Gordon 02.12.2017 14:36
Flash_Gordon
Co tohle? #IfWinActive LButton:: Sleep, 100 Click, right Sleep, 100 click, right return #IfWinActiv…
L-Core 02.12.2017 16:46
L-Core
Testovat to testuju na hře Virtua cop (1) :-) Jde mi o to "hacknout" hru tak, aby nebylo nutné dobí… poslední
Flash_Gordon 02.12.2017 17:48
Flash_Gordon

Testovat to testuju na hře Virtua cop (1) :-)

Jde mi o to "hacknout" hru tak, aby nebylo nutné dobíjet.
Respektive, aby každý výstřel znamenal i dobití (po výstřelu).
Ten tvůj kód mi nefunguje spolehlivě.
Vede k výstřelu např. jednou z pěti kliknutí.

Dopracoval jsem se tedy sem:

#IfWinActive ahk_exe PPJDD.EXE // jenom pokud je hra aktivní

RButton:: // při pravém mousebuttonu
Send {LButton down} // vystřel - stiskni tlačítko
Sleep 25
Send {LButton up} // pusť tlačítko
Sleep 25
Send {RButton down} // vystřel - stiskni tlačítko pravé
Sleep 25
Send {RButton up} // pusť tlačítko
Sleep 25
Send {RButton down} // vystřel - stiskni tlačítko pravé
Sleep 25
Send {RButton up} // pusť tlačítko
return

Výše uvedený příklad perfektně funguje - dělá přesně co má.
Má to jen jedinou vadu, je to přiřazeno pravému tlačítku.

// Pokud stejnou sekvenci přiřadím na left-mouse, tak nefunguje dobře:

LButton:: // při levém mousebuttonu
Send {LButton down} // vystřel - stiskni tlačítko
Sleep 25
Send {LButton up} // pusť tlačítko
Sleep 25
Send {RButton down} // vystřel - stiskni tlačítko pravé
Sleep 25
Send {RButton up} // pusť tlačítko
Sleep 25
Send {RButton down} // vystřel - stiskni tlačítko pravé
Sleep 25
Send {RButton up} // pusť tlačítko
return

Respektive funguje v jednom z pěti až šesti případů jinak se neprovádí left-mouse.
Nevím proč, ale vzhledem k tomu, že to funguje pro všechna ostatní ("spouštěcí") tlačítka, pokládám to za bug v AutoHotKey.

Zpět do poradny Odpovědět na původní otázku Nahoru