10Aug
Ali ste kdaj morali izvajati isto brezupno nalogo znova in znova na vašem računalniku? Namesto da bi zapravljali uro s klikom gumbov in tipkami za hitrost, je to popoln čas, da uporabite svoje znanje AutoHotkey, da bi vaš računalnik naredil delo za vas.
Opomba: Ta poseben primer je pravi, ki sem ga danes uporabljal prej, da shranim majhno količino časa, toda to so tehnike, ki sem jih večkrat uporabljal v preteklih letih, da bi se dobesedno rešil dni, vrednih časa.
Scenarij
Poskušal sem prebrati in očistiti nekaj napačnih oddajnih sporočil v našem e-novičnem računu, ko sem ugotovil, da je njihov vmesnik zahteval, da ročno kliknem gumb Izbriši in nato potrdim na vsakem posameznem sporočilu -govorimo o 300 nepravilnih sporočilih, ki jih je bilo treba izbrisati. Za poslabšanje stvari je vmesnik zelo počasen, kar pomeni, da bi za 30-40 minut preživel samo klikom in naredil karpalen tunel celo še slabši.
Namesto tega sem ustvaril nov AutoHotkey skript in hitro napisal skript, da bi to delo opravil zame.
Prvi korak je bil natančno določiti, katere klike in ključe sem potreboval za avtomatizacijo - očitno je prvi korak, da kliknemo na gumb X, ki prikaže ta potrditveni pogovor v Ajaxu:
Na srečo je gumb Izbriši samodejno poudarjen, zato lahko preprostopritisnite tipko Space za potrditev. Ko je zapis izbrisan, se vse premika, kot da vrstica nikoli ni bila.Če vemo to, se bomo premaknili in ustvarili skript, ki avtomatizira klikanje gumba X, čaka 3 sekunde za potrditveni pogovor, pritisne vrstico Space in nato počaka še 3 sekunde, da se vrstica izgine.
Ustvarjanje skripte
Prva stvar, ki jo želimo narediti, je ustvariti zanko, ki bo večkrat ponovila ista dejanja - v tem primeru ocenjujemo, da bomo to ponovili 300-krat, zato smoUporabljamo skladenjsko sintakso, kot je ta:
Loop 300
{
}
Zdaj bomo morali avtomatizirati akcijo klikov, kar je preprosto v AutoHotkey-vnesite klik .Če želite, lahko uporabite bolj napredne sintakse s klikom, natančno izberete, kje želite klikniti na zaslonu ali izbrati klik gumba. Za naše namene bomo uporabili le privzeto vrednost, ki nas pusti s tem:
Loop 300
{
kliknite
}
Zdaj bo naš skript kliknil 300 vrstic zaporedoma, toda na žalost imamo ta potrditveni pogovorz njimi se ukvarjamo, zato bomo zdaj uporabili funkcijo Send, da pritisnemo pritisnjeno tipko Space v aktivno okno.
Loop 300
{
kliknite
Pošlji,{ Space}
}
Če pogledate dokumentacijo, boste videli celotno sintakso za posebne tipke-običajne tipke lahko vnesete normalno, na primer, če želite vnesti preizkusite in nato končajte s presledkom, uporabite to:
Pošlji, preskusi{ Space}
Zdaj imamo skript, ki klikne gumb in nato klikne vrstico Space, kar bi bilo v redu, razen vmesnikaje počasen, zato moramo med vsako izvedbo klikov in funkcij pošiljanja vstaviti majhen premor. Da bi to dosegli, bomo uporabili funkcijo Sleep, ki vsebuje le en argument - zakasnitev v milisekundah.
Loop 300
{
spanje 3000
kliknite
spanje 3000
Pošlji,{ Space}
}
Zdaj imamo skript, ki bo uspešno izbrisal predmete in čakal 3 sekunde, preden se začne, tako da lahko premikate kazalko miškev prvem X, kliknemo na gumb, čaka 3 sekunde, pritisnemo na vrstico Space in nato čakamo 3 sekunde, preden gre skozi naslednji niz. Lahko bi uporabili ta preprost skript zdaj, če bi želeli - ampak kaj, če želite ustaviti skript?
Kaj bomo storili, je uporaba funkcije GetKeyState, da preverite, ali ste pritisnili določen tipko za testiranje, uporabili bomo tipko F8 in dodali naslednje v sredino zanke. To bo zaznalo, ali je bila tipka F8 pritisnjena, nato pa uporabite prelom, da zapustite zanko.
GetKeyState, stanje, F8
, če je stanje = D
odmor
Končni skript
Tukaj je končni skript, ki je združen, kar vam verjetno ne bo preveč pomagalo, saj je to specifično za moj scenarij, vendar ga lahko uporabite za ustvarjanjelastne skripte s preprosto spreminjanjem klikov in pošiljanjem tipk.
Loop 300
{
GetKeyState, stanje, F8
, če je stanje = D
odmor
spanje 3000
kliknite
spanje 3000
Pošlji,{ Space}
}
Return
Za ponazoritev, kako to deluje v praksi, je tukaj hiter videoposnetekprikazuje v akciji:
V tem posebnem scenariju mi je bilo potrebno približno 3 minute, da sem združil delovni skriptni čas shranjen: 27 minut. Samo dovolj časa, da snemam videoposnetek in napišem ta članek!