10Aug

Kaip taupyti laiką, automatizuojant nuobodų užduotį su AutoHotkey

Ar kada nors reikėjo atlikti tą patį beprasmišką užduotį savo kompiuteryje? Užuot eikvoję valandas spustelėdami mygtukus ir paspaudę klavišus, tai yra puikus laikas naudotis savo "AutoHotkey" įgūdžiais, kad jūsų kompiuteris atliktų jūsų darbą.

Pastaba: Šis konkretus pavyzdys yra tikrasis, kurį anksčiau naudojau anksčiau, kad sutaupytumėte nedaug laiko, tačiau tai yra metodai, kuriuos daugelį metų naudojau daug kartų, kad tiesiog sutaupytų save dienų verta laiko.

Scenarijus

Aš bandžiau išbandyti ir išvalyti keletą neteisingų transliacinių žinučių mūsų el. Pašto informacinių biuletenių sąskaitoje, kai supratau, kad jų sąsaja reikalauja man rankiniu būdu spustelėti mygtuką "Ištrinti" ir patvirtinti jį kiekviename pranešime -apie 300 neteisingų pranešimų, kuriuos reikėjo ištrinti. Dar blogiau, sąsaja yra labai lėta, o tai reiškia, kad turėjau gerą 30-40 minučių tiesiog spustelėti ir dar labiau pabloginti mano riešo kanalą.

Užuot tai padaręs, aš sukūriau naują AutoHotkey scenarijų ir greitai parašiau scenarijų, skirtą man darbui atlikti.

Pirmasis žingsnis buvo tiksliai nustatyti, kurie spragtelėjimai ir raktai, kuriuos reikia automatizuoti, akivaizdu, pirmas žingsnis yra paspausti mygtuką X, kuris atveria šį Ajax patvirtinimo dialogą:

Laimei, mygtukas "Delete" automatiškai pažymimas, todėl galite tiesiogspustelėkite "Space" klavišą, kad patvirtintumėte. Kai įrašas bus ištrintas, viskas pasislenka taip, tarsi eilutė ten niekada nebūtų.Žinodamas tai, mes pereisime ir sukursime scenarijų, automatizuojantį paspaudę mygtuką X, laukiant patvirtinimo dialogo laukimo 3 sekundes, paspaudžiant tarpo klavišą ir laukiant dar 3 sekundžių, kol eilutė išnyks.

Skripto kūrimas

Pirmasis dalykas, kurį norime padaryti, yra sukurti kilpa, kuri tuo pačiu metu pakartotinai atliks tuos pačius veiksmus - įvertinome, kad turėsime kartoti šį 300 kartų, todėl mes"Naudosime tokį ciklo sintazę:

Loop 300
(

)

Dabar turėsime automatizuoti paspaudimo veiksmą, kuris yra lengvai" AutoHotkey "- tiesiog įveskite , spustelėkite .Jei norite, galite pasirinkti patobulintą kryžminio sintaksę, tiksliai pasirenkant, kur norite spustelėti ekraną, arba spustelėjus mygtuką.Mūsų tikslams mes tiesiog naudosime numatytąjį, kuris palieka mus šiuo:

Loop 300
(
spustelėkite
)

Dabar mūsų scenarijus spustelėks 300 kartų iš eilės, bet, deja, mes turime tokį patvirtinimo dialogąspręskite, todėl dabar mes naudosime funkciją Siųsti, jei norite nusiųsti tarpo klavišą į aktyvųjį langą.

Loop 300
(
spustelėkite
Siųsti,{ Erdvė}
}

Jei pažvelgsite į dokumentaciją, pamatysite visą specialiųjų klavišų sintaksę - įprastai įvestus klavišus galima įvesti įprastai - pavyzdžiui, jei norite įvesti bandykite , o tada baigkite jį erdve, naudokite šį:

Siųsti, bandykite{ Erdvė}

Taigi dabar mes turime scenarijų, kuris spustelėja mygtuką, tada paliečia tarpo klavišą, kuris būtų gerai, išskyrus sąsająyra lėtas, todėl mes turime įterpti mažą laiko tarpą tarp kiekvieno paspaudimo vykdymo ir siųsti funkcijas. Norėdami tai padaryti, mes naudosime miego funkciją, kuri užtruks tik vieną argumentą - milisekundžių vėlavimą.

Loop 300
(
sleep 3000
spustelėkite
miego 3000
Siųsti( erdvė)
)

Dabar mes turime scenarijų, kuris sėkmingai ištrins elementus, laukia 3 sekundes, kol jis bus pradėtas, kad galėtumėte perkelti pelės žymeklįper pirmąjį X, paspaudus mygtuką, laukiant 3 sekundžių, spustelėdamas tarpo klavišą, tada palaukite 3 sekundes, kol jis pereis per kitą rinkinį.Galėtumėte naudoti šį paprastą scenarijų dabar, jei norite, bet ką daryti, jei norite sustabdyti scenarijų?

Ką mes turėsime, naudokite funkciją GetKeyState, kad patikrintumėte, ar spustelėjote tam tikrą klavišą bandymams, mes naudosime klavišą F8 ir pridėsime sekančią dalį į kilpos vidurį.Tai nustatys, ar buvo paspaustas F8 klavišas, o tada naudokite pertrauką, kad išeitumėte iš ciklo.

GetKeyState, state, F8
, jei būsena = D
pertrauka

Galutinio scenarijaus

Čia yra galutinis scenarijus, kurį visi sukūrėme, kuris greičiausiai jums nepadės per daug, nes jis būdingas mano scenarijui, bet jūs galite jį naudoti, norėdami sukurti savosavo scenarijus tiesiog pakeisdamas paspaudimus ir paspaudus klavišus.

Loop 300
(
GetKeyState, valstija, F8
, jei būsena = D
pertrauka
miegas 3000
spustelėkite
miegą 3000
Siųsti,{ erdvė}
}
Grįžti

Norėdami parodyti, kaip tai praktiškai veikia, čia pateikiamas greitas vaizdo įrašasrodo tai veikloje:

Šiame konkrečiame scenarijuje man užtruko apie 3 minutes, kad sutaptų sutaupytą darbinį scenarijų laiką: 27 minutes. Tiesiog pakankamai laiko įrašyti vaizdo įrašą ir parašyti šį straipsnį!