
🖱 Kuidas autohotkey abil hiirenuppe ümber kaardistada ja oma töövoogu kiirendada
Ostsid hiire, millel on lisaks tavalistele nuppudele veel mitu lisanuppu, kuid kasutad ainult vasakut, paremat klahvi ja kerimisratast. Pöidla all olevad nupud seisavad jõude, kuigi need võiksid sulgeda kaarte, nende vahel liikuda, teha topeltklõpse ja avada arendaja tööriistu. Kuust kuusse sirutad käe klaviatuuri järele, et kasutada otseteid, mida hiir võiks ise hallata.
Probleem pole „vales" hiires. Probleem on selles, et tootja kaasasolev tarkvara ei suuda nupule keerukaid tegevusi siduda või hakkab tõrkuma, kui aktiivne aken vahetub. Lahendus on saata nuppudelt „tühje" signaale ja püüda need kinni skriptiga, mis mõistab rakenduse konteksti.
💡 Kiirülevaade:
- Määra hiire draiveri kaudu lisanuppudele virtuaalsed klahvid F13-F24: need ei tee süsteemis midagi, kuid skript „kuuleb" neid
- Paigalda AutoHotkey ja kirjuta skript: iga rakendus saab oma tegevuste komplekti, alates kaardi sulgemisest kuni Alt-klahvi all hoidmiseni Photoshopis
- Kasuta Window Spy'd, et haakida ükskõik millise exe-faili külge: meetod töötab brauserites, koodiredaktorites, videopleierites, igal pool
Mis on AutoHotkey ja miks su hiir seda vajab
AutoHotkey (AHK) on tasuta, avatud lähtekoodiga automatiseerimiskeel Windowsile. See suudab vahelt kinni püüda klahvivajutusi ja hiireklõpse, saata aktiivsesse aknasse suvalisi kombinatsioone ning eristada rakendusi käivitatava faili nime järgi. See viimane omadus teeb sellest ideaalse kihi „rumala" riistvara ja tarkvara vahel: sama hiirenupp teeb Chrome'is, Photoshopis ja töölaual erinevaid asju.
Selle kirjutamise hetkel on praegune versioon AHK v2.0, mis on kiirem, süntaksi suhtes rangem ning millest on eemaldatud iganenud käsud nagu #NoEnv. Allolevad skriptid on kirjutatud v2 jaoks, kuid loogika kandub üle ka v1-le (seda toetatakse endiselt tagasiühilduvuse huvides).
Alternatiiv ilma skriptideta on XMBC (X-Mouse Button Control), graafilise liidesega utiliit. See eristab samuti rakendusi, toetab kuni 10 kihti profiili kohta ega nõua üldse koodi. Miinus: null kaasaskantavus arvutite vahel ja võimalused piirduvad sellega, mille arendaja on sisse ehitanud. AHK on paindlikum ja skripti saab kopeerida koos ülejäänud süsteemiseadetega.
1. Samm: seo nupud virtuaalsete klahvidega F13-F24
Tavalised funktsiooniklahvid (F1-F12) on hõivatud; need teevad igas rakenduses midagi. Kuid Windows tunneb ka F13-F24, päris skannimiskoode, mida ükski programm vaikimisi ei haagi. Need on ideaalsed „mannekeenid": hiire draiver saadab F15 süsteemi, süsteem edastab selle ainult meie AHK skriptile.
Sidumine hiire draiveri kaudu
Ava oma hiire tootja tarkvara: Logitech G Hub, Razer Synapse, SteelSeries Engine või mõni universaalne tööriist. Leia nuppude määramise sakk ja vali iga lisanupu jaoks „Määra klahvivajutus" või „Klahvivajutuse määramine". Sisesta F13, F14, F15…, iga nupu jaoks üks. Ära muretse, et klahve F13-F24 füüsiliselt klaviatuuril ei ole; draiver saadab skannimiskoodi ja Windows võtab selle vastu.
Kuidas sa „vajutad" F15, kui sellist klahvi pole? Salvesta see AHK katkend faili nimega send.ahk ja käivita see:
1 ; send.ahk — emulates pressing F15 after 5 seconds 2 Sleep 5000 3 Send "{F15}" 4 ExitApp
Käivita see, lülitu kiiresti hiire draiveri aknasse, klõpsa väljale „Määra klahvivajutus" ja 5 sekundi pärast saadab AHK F15 ning draiver registreerib selle. Korda iga nupu puhul, muutes F-klahvi numbrit.

2. Samm: paigalda AutoHotkey ja loo põhiskript
Laadi AHK alla ametlikult veebisaidilt (vali versioon v2.0). Pärast paigaldamist loo tekstifail laiendiga .ahk, näiteks mouse.ahk. Põhiskripti päis:
1 ; mouse.ahk — basic AHK v2 setup 2 #Requires AutoHotkey v2.0 3 SendMode "Input" 4 SetWorkingDir A_ScriptDir 5 SetTitleMatchMode 2 6 #MaxHotkeysPerInterval 300 7 #InstallMouseHook
Lahtiseletus: SendMode "Input" on kiireim ja usaldusväärseim meetod klahvivajutuste saatmiseks; SetTitleMatchMode 2 otsib alamstringi akna pealkirjast (piisab nime osast); #InstallMouseHook lubab madala taseme hiirenupu vaheltkinnipüüdmise.
Automaatne käivitumine Windowsi käivitumisel
Vajuta Win+R, trüki shell:startup ja avaneb käivituskaust. Hoia all Alt ja lohista mouse.ahk sellesse kausta: luuakse otsetee. Skript käivitub koos süsteemiga. .ahk faile on mugav redigeerida Sublime Textis või Notepad++is, mõlemad tõstavad AHK süntaksi esile.
3. Samm: kirjuta skript brauseri jaoks
Brauser on hiirenuppude katsetamise polügoon. Siin on paigutus, mis katab peamised navigeerimistoimingud:
1 ; Chrome / any Chromium-based browser 2 #HotIf WinActive("ahk_exe chrome.exe") or WinActive("ahk_exe msedge.exe") 3 ; Ctrl+W = close tab 4 F14::Send "^w" 5 ; Ctrl+Shift+C = developer tools (inspect element) 6 F22::Send "^+c" 7 ; Ctrl+PageDown = next tab 8 F16::Send "^{PgDn}" 9 ; Ctrl+PageUp = previous tab 10 F17::Send "^{PgUp}" 11 ; Alt+Left = back in history 12 F18::Send "!{Left}" 13 ; F5 = reload tab 14 F20::Send "{F5}" 15 ; Ctrl+Shift+T = restore closed tab 16 F23::Send "^+t" 17 #HotIf
Kopeeri see plokk faili mouse.ahk, asendades F-klahvide numbrid nendega, mille sa draiveris määrasid. Pärast faili salvestamist vajuta AHK salve menüüst Ctrl+R (Laadi skript uuesti); uued seosed hakkavad kohe tööle, ilma et peaksid brauserit taaskäivitama.
#HotIf piirab ploki ulatust; nupud töötavad ainult siis, kui Chrome või Edge on fookuses. Lülitu File Explorerisse ja needsamad F14-F23 võivad teha midagi muud või üldse mitte midagi.
4. Samm: skript Photoshopi ja graafikatahvli jaoks
Keerulisem näide: Photoshop, kus nupud ei saada lihtsalt kombinatsiooni, vaid hoiavad all modifikaatoriklahvi. See on hindamatu väärtusega Wacomi pliiatsiga töötades; pliiatsi nupud võimaldavad kasutada värvivalijat ja lõuendi lohistamist:

1 ; Adobe Photoshop 2 #HotIf WinActive("ahk_exe photoshop.exe") 3 ; Hold Alt = color picker (while button is pressed) 4 F14:: 5 { 6 if !GetKeyState("Alt") 7 Send "{Alt down}" 8 } 9 F14 Up::Send "{Alt up}" 10 11 ; Alt+Ctrl+Z = step backward (instead of simple Undo) 12 F16::Send "!^z" 13 14 ; Shift+Ctrl+Z = step forward 15 F17::Send "+^z" 16 17 ; Hold Space = canvas dragging 18 F18:: 19 { 20 if !GetKeyState("Space") 21 Send "{Space down}{Click down}" 22 } 23 F18 Up::Send "{Space up}{Click up}" 24 25 ; Ctrl+S = save 26 F19::Send "^s" 27 28 ; Ctrl+N = new document 29 F20::Send "^n" 30 31 ; Alt+Shift+Ctrl+S = Export → Save for Web 32 F23::Send "!+^s" 33 #HotIf
Pane tähele F14:: konstruktsiooni looksulgudega; see on mitmerealine kiirklahv. GetKeyState("Alt") väldib modifikaatori korduvat allhoidmist, kui nupp vibreerib. F14 Up:: käivitub vabastamisel ja taastab Alt-i algse oleku.
Sama lähenemine kehtib igas tarkvaras, mis vajab modifikaatoreid: Figma (tühik lohistamiskäe jaoks), Blender (Shift täpseks liikumiseks), DaVinci Resolve (Alt klippi kopeerimiseks).
Samm 5: globaalsed vaikimisi toimingud
Kui ükski rakendus pole fookuses, teevad nupud midagi universaalset:
1 ; Global bindings (work everywhere without a specific #HotIf) 2 F14::Send "{Backspace}" ; back (like a browser button) 3 F15::Send "{Click 2}" ; double click 4 F19::Send "{MButton}" ; middle button (easier than clicking the wheel) 5 F21::Send "#d" ; Win+D = minimize all windows (boss key)
Topeltklõps ühe nupuga on originaalmeetodi autori isiklik lemmik. Pärast nädalast kasutamist tundub füüsiline topeltklõps arusaamatu: miks vajutada kaks korda, kui saab ühe korraga?
Alternatiiv ilma koodita: X-Mouse Button Control
Kui skriptid pole sinu tee, kaalu X-Mouse Button Control (XMBC). See on tasuta graafilise liidesega utiliit, mis teeb sama asja: profiilid konkreetsetele .exe failidele, kuni 10 kihti profiili kohta, kihivahetus kiirklahviga.
XMBC plussid: paigaldub minutiga, seadistamine on rippmenüüst toimingu valimine, koodi pole vaja. Miinused: vähem paindlikkust (ei saa kirjutada tingimust GetKeyState-ga) ja seadistus elab registris ning jääb harva ellu teise arvutisse kolimisel. Lihtsate stsenaariumide jaoks („sule kaart", „vaheta lugu") on see suurepärane valik. Mitmetasandiliste konstruktsioonide jaoks koos allhoitavate modifikaatoritega sobib ainult AHK.
Kuidas sihtida ükskõik millist rakendust Window Spy abil
Uue programmi toe lisamiseks pead välja selgitama selle käivitatava faili nime. Teavitusalal tee paremklõps AHK ikoonil ja vali Window Spy. Klõpsa sihtprogrammi aknal; Window Spy näitab:
- Window Title, akna pealkiri (saad sihtida selle järgi)
- ahk_exe, protsessi nimi (näiteks
firefox.exevõicode.exevõinotion.exe) - ahk_class, akna klass (kasulik rakendusesiseste dialoogide eristamiseks)
Lisa uus plokk faili mouse.ahk:
1 #HotIf WinActive("ahk_exe firefox.exe") 2 F14::Send "^w" 3 ; ... your actions 4 #HotIf
Salvesta, Ctrl+R skripti uuesti laadimiseks, valmis. Tehnika on universaalne: videopleierid (VLC, PotPlayer), suhtlusrakendused (Telegram, Discord), IDE-d (VS Code, PhpStorm), failihaldurid, kõik, millel on .exe.
Boonus: muusika juhtimine globaalsete meediaklahvidega
Kui su klaviatuuril pole multimeedia nuppe, saab hiir neid asendada. Järgmised toimingud on globaalsed ja ei vaja pleieri akna tuvastamist:
1 ; Media control — works always 2 F18::Send "{Media_Prev}" ; previous track 3 F19::Send "{Media_Play_Pause}" ; pause / play 4 F20::Send "{Media_Next}" ; next track 5 F22::Send "{Volume_Down}" ; volume down 6 F23::Send "{Volume_Up}" ; volume up 7 F14::Send "{Volume_Mute}" ; mute
Töötab iga pleieriga, mis kuulab süsteemi meediasündmusi: Spotify, YouTube Music (PWA), AIMP, foobar2000, isegi sisseehitatud Windowsi pleier.
⁉️🤔 Korduma kippuvad küsimused
Miks kasutada F13-F24, kui AHK suudab hiireklõpse otse tuvastada?
AHK eristab hiirenuppe kui
XButton1jaXButton2; see on ainult kaks lisanuppu. Mängurihiirtel võib neid olla 8-12 ja draiver toimib ikkagi vahendajana. Ahel „draiver → F13-F24 → AHK" skaleerub suvalisele nupuhulgale ja draiver ei ürita ise toimingut sooritada, vaid saadab lihtsalt klahvikoodi. Kui AHK skript kokku jookseb, lakkavad hiirenupud lihtsalt töötamast, selle asemel et hakata draiverist ootamatuid makrosid käivitama.
Kas see meetod töötab Windows 11-s?
Jah. F13-F24 on standardsed USB HID skaneerimiskoodid; need ei ole seotud Windowsi versiooniga. AHK v2.0 toetab ametlikult Windows 10 ja 11. Windowsi ARM-versioonidel (Surface Pro X) ei pruugi mõned hiiredraiverid virtuaalseid klahve väljastada, kuid Logitech G Hub ja Razer Synapse töötavad probleemideta.
Mis siis, kui hiiredraiver ei võimalda F13-F24 määrata?
Mõnel kontorihiirel, millel on kärbitud tarkvara, on piirang F1-F12. Kaks võimalust: proovige utiliiti X-Mouse Button Control, mis suudab määrata F13-F24 sõltumata hiire mudelist, või kasutage AHK-s otse
XButton1/XButton2. Ainult kaks nuppu, kuid alustamiseks piisab.
Kas skripti saab teise arvutisse üle kanda?
Jah. Kopeerige
mouse.ahkfail ja kaust AutoHotkey Portable'iga (saadaval ametlikul veebisaidil). Määrake uues arvutis hiiredraiveris nupud samadele F-klahvidele; kõik töötab ilma skriptikoodi muutmata.
Kas AHK aeglustab süsteemi?
Jõudeolekus tarbib AHK alla 5 MB muutmälu ja 0% protsessorit; ametlik dokumentatsioon kinnitab minimaalset jalajälge. Konks käivitub ainult siis, kui jälgitavat klahvi vajutatakse; ülejäänud aja skript magab. Võrdluseks, Razer Centrali patenteeritud tarkvara „kaalub" jõudeolekus 200-400 MB.
Kas see on vaeva väärt
Esmane seadistamine võtab umbes 20 minutit: määrake draiveris nupud, kopeerige koodijupid, kohandage F-klahvide numbreid oma maitse järgi. Pärast seda elab skript aastaid ja liigub koos ülejäänud konfiguratsiooniga arvutist arvutisse. Kaks tasu.
Esiteks: mikroliigutuste kokkuhoid. Vahelehe sulgemine ilma Ctrl+Wta (üks vajutus kahe asemel), vahelehtede vahetamine ilma Ctrl+Tabita, värvivalija Photoshopis ilma pliiatsit tahvlilt tõstmata. Päeva jooksul koguneb sadu toiminguid, millest igaüks on iseenesest tühine, kuid aasta peale kokku tunde.
Teiseks: „maagia" efekt. Kui kolleeg vaatab teie ekraani ega suuda mõista, kuidas te klaviatuuri puudutamata akende vahel liigute, jätab see mulje. Selle taga pole maagiat, vaid 40 rida AHK-d ja pool tundi seadistamist.
Kui töötate hiirega 6+ tundi päevas, seadistage nupud. Esimene nädal tundub harjumatu, teine mugav ja kuu aja pärast ei mõista te enam, kuidas inimesed ilma selleta elavad.
Siin on video, mis tutvustab meetodit installimisest kuni esimese skriptini:



