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

Ano, rád vysvětlím.
Jednoduše chci, aby Rdvojkliku předcházel Lclick.

Jako říkám, pokud to umístím na tu klávesu Q, tak to funguje skvěle.
Jenom když to umístím ne levou myš, tak to zlobí.
Možná je to bug AutoHotKey, nicméně mám staženou aktuální verzi (64bit).

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