Paano Sumulat ng isang AutoHotkey Script

Ang AutoHotkey ay isang kamangha-mangha ngunit kumplikadong piraso ng software. Ito ay paunang inilaan upang ibalik ang mga pasadyang hotkey sa iba't ibang mga aksyon ngunit ngayon ay isang buong suite ng automation ng Windows.

Ang AHK ay hindi mahirap matuto para sa mga bagong gumagamit, dahil ang pangkalahatang konsepto ay medyo simple, ngunit ito ay isang buong, kumpletong Turing na programa ng pag-program. Mas madali mong kukunin ang syntax kung mayroon kang isang background sa programa o pamilyar sa mga konsepto.

Pag-install at Paggamit ng AutoHotkey

Ang proseso ng pag-install ng AutoHotkey ay prangka. I-download ang installer mula sa opisyal na website at patakbuhin ito. Piliin ang "Express Installation." Matapos mong mai-install ang software, maaari kang mag-right click kahit saan at piliin ang Bago> AutoHotkey Script upang makagawa ng isang bagong script.

Ang mga script ng AHK ay mga file ng teksto na may a .ahk karugtong Kung mag-click ka sa kanila nang tama, makakakuha ka ng ilang mga pagpipilian:

  • Ilo-load ng "Run Script" ang iyong script gamit ang runtime ng AHK.
  • Isasama ito ng "Compile Script" ng isang AHK na naisasagawa upang makagawa ng isang file na EXE na maaari mong patakbuhin.
  • Ang "Edit Script" ay magbubukas ng iyong script sa iyong default na editor ng teksto. Maaari mong gamitin ang Notepad upang magsulat ng mga script ng AHK, ngunit inirerekumenda namin ang paggamit ng SciTE4AutoHotkey, isang editor para sa AHK na sumusuporta sa pag-highlight ng syntax at pag-debug.

Habang tumatakbo ang isang script — maging ito man ay isang EXE o hindi — mahahanap mo itong tumatakbo sa background sa lugar ng notification sa Windows, na kilala rin bilang system tray. Hanapin ang berdeng icon na may isang "H" dito.

Upang lumabas, i-pause, i-reload, o i-edit ang isang script, i-right click ang icon ng notification at pumili ng naaangkop na pagpipilian. Ang mga script ay patuloy na tatakbo sa background hanggang sa lumabas ka sa kanila. Mawala din sila kapag nag-sign out ka sa Windows o i-reboot ang iyong PC, siyempre.

Paano Gumagana ang AutoHotkey?

Sa core nito, ang AHK ay gumagawa ng isang bagay-nagbubuklod ng mga aksyon sa mga hotkey. Mayroong maraming iba't ibang mga aksyon, mga kumbinasyon ng hotkey, at mga istraktura ng pagkontrol, ngunit ang lahat ng mga script ay gagana sa parehong prinsipyo. Narito ang isang pangunahing script ng AHK na naglulunsad ng Google Chrome tuwing pinindot mo ang Windows + C:

#c :: Patakbuhin ang pagbabalik ng Chrome

Ang unang linya ay tumutukoy sa isang hotkey. Ang pound sign (#) ay maikli para sa Windows key at c ay ang C key sa keyboard. Pagkatapos nito, mayroong isang dobleng colon (: :) upang tukuyin ang pagsisimula ng isang bloke ng aksyon.

Ang susunod na linya ay isang aksyon. Sa kasong ito, naglulunsad ang aksyon ng isang application kasama ang Takbo utos Ang bloke ay natapos na may a bumalik ka sa dulo. Maaari kang magkaroon ng anumang bilang ng mga aksyon bago ang bumalik ka. Sunod-sunod silang magpapaputok.

Tulad nito, tinukoy mo ang isang simpleng pagmamapa ng key-to-action. Maaari kang maglagay ng marami sa mga ito hangga't gusto mo sa a .ahk file at itakda ito upang tumakbo sa background, palaging naghahanap ng mga hotkey upang muling mag-remap.

Mga Hotkey at Modifier

Maaari kang makahanap ng isang buong listahan ng mga modifier ng AHK sa opisyal na dokumentasyon, ngunit magtutuon kami sa mga pinaka-kapaki-pakinabang (at cool) na tampok.

Ang mga key ng modifier lahat ay may mga shorthands na character. Halimbawa, # ! ^ + ay ang Windows, Alt, Control, at Shift, ayon sa pagkakabanggit. Maaari mo ring makilala ang pagitan ng kaliwa at kanang Alt, Control, at Shift gamit ang < at > mga modifier, na magbubukas ng maraming silid para sa labis na mga hotkey. Halimbawa, ang tamang Shift. Tingnan ang pangunahing listahan para sa lahat ng maaari mong sanggunian. (Spoiler: Maaari kang mag-refer ng halos bawat susi. Maaari mo ring i-refer ang iba pang mga hindi input na aparato ng keyboard na may isang maliit na extension).

Maaari mong pagsamahin ang maraming mga susi hangga't gusto mo sa isang hotkey, ngunit sa paglaon ay mauubusan ka ng mga pangunahing kumbinasyon upang matandaan. Dito pumapasok ang mga modifier, na hinahayaan kang gumawa ng mga mas nakakatakot na bagay. Paghiwalayin natin ang isang halimbawa mula sa mga AHK doc:

Ang luntian #IfWinActive ay tinawag na adirektiba, at naglalapat ng karagdagang konteksto sa mga hotkey na pisikal sa ilalim nito sa script. Ang anumang hotkey pagkatapos nito ay magpapaputok lamang kung ang kondisyon ay totoo, at maaari kang makapagpangkat ng maraming mga hotkey sa ilalim ng isang direktiba. Hindi magbabago ang direktiba na ito hanggang sa maabot mo ang isa pang direktiba, ngunit maaari mo itong i-reset sa isang blangko #Kung (at kung iyon ay tila isang pag-hack, maligayang pagdating sa AHK).

Ang direktiba dito ay suriin kung ang isang tukoy na window ay bukas, tinukoy ng ahk_class Notepad. Kapag natanggap ng AHK ang input na "Win + C," ito ay magpapagana ng aksyon sa ilalim ng una #IfWinActive kung bumalik lamang ang direktiba, at pagkatapos suriin ang pangalawa kung hindi. Ang AHK ay may maraming mga direktiba, at mahahanap mo ang lahat sa mga ito sa mga dokumento.

Ang AutoHotkey ay mayroon ding mga hotstrings, na gumana tulad ng mga hotkey maliban sa pagpapalit ng isang buong string ng teksto. Ito ay katulad sa kung paano gumagana ang autocorrect — sa katunayan, mayroong isang script na autocorrect para sa AHK - ngunit sinusuportahan ang anumang pagkilos na AHK.

Ang hotstring ay tutugma lamang sa string kung eksakto itong nai-type. Awtomatiko nitong aalisin ang katugmang teksto upang mapalitan din ang hotstring, kahit na ang pag-uugali na ito ay maaaring ayusin.

Mga kilos

Ang isang aksyon sa AHK ay anumang may epekto sa labas sa operating system. Maraming kilos ang AHK. Hindi namin maaaring ipaliwanag ang lahat sa kanila, kaya pipiliin namin ang ilang mga kapaki-pakinabang.

  • Nagpapadala ng input, teksto man ito o iba't ibang pagpindot sa pindutan.
  • Paglipat ng mouse sa paligid. Sa katunayan, ang AHK kung minsan ay maling nai-flag bilang cheat software para sa mga video game, dahil ang mga tao ay may ganap na paggana ng mga aimbot dito.
  • Ang pag-click sa mouse, na may pagpoposisyon na kaugnay sa kasalukuyang window.
  • Nagpapakita ng mga menu ng dialogo, kumpleto sa mga form at input na patlang.
  • Ang paglipat ng mga bintana sa paligid, pagsasaayos ng laki, at pagbubukas at pagsara.
  • Pagpatugtog ng musika.
  • Sumusulat sa Windows Registry. Oo, talaga.
  • Pagbabago ng mga nilalaman ng Clipboard.
  • Pagbasa at pagsusulat ng mga file. Maaari kang mag-loop sa mga file at magpatakbo ng mga aksyon sa bawat linya. Maaaring sumulat pa si AHK .ahk mga file at ayusin ang sarili nitong code.

Karamihan sa mga pagkilos na ito ay magkakaroon din ng mga utos na nakatuon sa impormasyon na naiugnay sa kanila. Halimbawa, maaari kang sumulat sa clipboard, ngunit maaari mo ring makuha ang mga nilalaman ng Clipboard upang maiimbak sa isang variable at magpatakbo ng mga pag-andar kapag nagbago ang clipboard.

Tinali ang Lahat Ng Ito Sa Mga Structure ng Pagkontrol

Ang AHK ay hindi magiging ano kung wala ang lahat ng mga istruktura ng kontrol na ginagawang kumpleto sa Turing.

Bilang karagdagan sa #Kung mga direktiba, mayroon ka ring access sa Kung sa loob ng mga bloke ng pagkilos. Meron si AHK Para kay mga loop, mga bloke ng kulot na brace, Subukan mo at Mahuli pahayag, at marami pang iba. Maaari mong ma-access ang labas ng data mula sa loob ng action block, at iimbak ito sa mga variable o object upang magamit sa ibang pagkakataon. Maaari mong tukuyin ang mga pasadyang pag-andar at label. Talaga, anumang madali mong magagawa sa ibang wika ng pagprograma na maaari mong gawin sa AHK na may kaunting sakit ng ulo at pagtingin sa mga dokumento.

Halimbawa, isipin na mayroon kang isang nakakainip, paulit-ulit na gawain na hinihiling sa iyo na mag-click ng maramihang mga pindutan sa isang hilera at maghintay para sa isang server na tumugon bago gawin itong muli ad infinitum. Maaari mong gamitin ang AHK upang i-automate ito. Nais mong tukuyin ang ilang mga loop upang ilipat ang mouse sa mga tukoy na lokasyon, mag-click, at pagkatapos ay lumipat sa susunod na lugar at mag-click muli. Magtapon ng ilang mga pahayag ng paghihintay upang hindi ito masira. Maaari mo ring subukang basahin ang kulay ng mga pixel sa screen upang matukoy kung ano ang nangyayari.

Isang bagay ang natitiyak-malamang na hindi magiging maganda ang iyong script. Ngunit hindi rin ang AutoHotkey, at okay lang iyon.


$config[zx-auto] not found$config[zx-overlay] not found