Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

Scorciatoie E automatizzazioni con AutoHotkey


Impariamo alcune funzionalità avanzate di AutoHotkey, come l'attesa di una finestra, la sua attivazione insieme ai movimenti e i click del mouse.

Buongiorno, torniamo al nostro piccolo corso di AutoHotkey, oggi vedremo come possiamo automatizzare alcune operazioni come apertura di programmi, attivazione di finestre e click del mouse. Useremo DosBox come programma da manovrare, durante la scrittura dello script teniamone aperta una sessione per sapere cosa deve essere eseguito e dove il mouse deve cliccare.

Creiamo un nuovo file di testo e salviamolo con la solita estensione .ahk. Iniziamo scrivendo un po' di impostazioni abbastanza importanti.

#NoEnv

Questa impostazione serve per la compatibilità con le future release di AutoHotkey.

SetKeyDelay, 50,0

Siccome DosBox è un po' lento a ricevere i segnali da tastiera portiamo a 50 millisecondi l'intervallo tra un segnale e l'altro, altrimenti frasi come:

c:\programmi\

Verrebbero scritte in un modo simile a questo:

c\prgmmi

Proseguiamo con:

SetWorkingDir %A_ScriptDir%

Tanto per essere sicuri di avere una directory di lavoro consistente.

Abbiamo finito con le impostazioni, ora iniziamo a istruire AutoHotkey sulle azioni da prendere.

Iniziamo con il comando:

Run, C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe

Che avvia per noi il programma DOSBox.exe che si trova nella cartella "C:\program files (X86)\DoxBox-0.74". Il prossimo comando è:

WinWait, DOSBox 0.74

Questo comando è abbastanza auto-esplicativo, attende che compaia una finestra che riporti nel titolo la stringa "DOSBox 0.74", se compare lo script prosegue.

Sleep, 500

Con questo comando fermiamo lo script per 500 millisecondi (mezzo secondo) così da evitare possibili problemi dati dall'invio di molti segnali consecutivi.

SendRaw, mount c H:\Programmi\Giochi\PRINCE

Questo comando, a differenza di "Send" invia la stringa come è visualizzata, senza tener conto dei caratteri modificatori (+ ^ # <^>!) che già conosciamo.

Nella dosbox vedremo scriversi il comando:

mount c H:\Programmi\Giochi\PRINCE

Che monta la cartella H:\Programmi\Giochi\PRINCE nel disco C di dosbox.

Prossimo comando:

sleep, 2000

send {Enter}

Dopo aver atteso 2 secondi, usiamo il comando Send per inviare il segnale della pressione del tasto Invio.

Allo stesso modo di prima, inviamo altri comandi alla DosBox:

sleep, 200

SendRaw, C:

sleep, 2000

send {Enter}

sleep, 200

sendraw, Prince

send {Enter}

sleep, 10000

In poche parole questi comandi fanno scrivere alla DosBox il comando:

c:\

Seguito dal tasto Invio e poi esegue il comando

Prince

Ed attende 10 secondi.

Ora arriva la parte divertente, prendiamo in mano l'AutoIt3 Window Spy, distribuito insieme ad autohotkey e risolleviamo la dosbox, puntiamo il tasto chiudi e annotiamo La posizione nella finestra attiva:

>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<

On Screen:    751, 133  (less often used)

In Active Window:    627, 8

E scriviamo questo comando nel nostro script:

mouseclick, left , 627,8

Questo farà in modo che il mouse si sposti sul pulsante chiudi e lo clicchi..

Il nostro script finale dovrebbe avere un aspetto come questo:

#NoEnv
SetKeyDelay, 50,0
SetWorkingDir %A_ScriptDir%
Run, C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe
WinWait, DOSBox 0.74
Sleep, 500
SendRaw, mount c H:\Programmi\Giochi\PRINCE
sleep, 2000
send {Enter}
sleep, 200
SendRaw, C:
sleep, 2000
send {Enter}
sleep, 200
sendraw, Prince
send {Enter}
sleep, 10000
mouseclick, left , 627,8

Se lo avviamo, si aprirà dosbox, verranno digitati tutti i comandi, e dopo 10 secondi verrà automaticamente chiusa la DosBox.

Buon Divertimento!

Saluti e al prossimo post!

Penaz.