Sei sulla pagina 1di 6

AutoHotkey Tutorial in Italiano

Pagina 1 di 6

Download
Documentation
Changelog

Tutorial in
italiano
Support
Forum | wiki

n all words n
i
j
k
l
m
j exact phrase
k
l
m
Search

Tutorial
Questa breve descrizione ti aiutera' ad iniziare a scrivere da subito le tue proprie MACRO e HOTKEYS.

Indice del tutorial












Generazione di uno Script


Apertura di un programma o di un documento
Trasmettere le combinazioni di tasti e i click del mouse
Attivare e manipolare finestre
Ottenere informazioni dall'utente con MsgBox
Utilizzare le variabili e il clipboard
Ripetere una serie di azioni piu' e piu' volte
Manipolare file e cartelle
Descrizione di altre caratteristiche

Generazione di uno Script


Ogni script e' un normale file di testo, contenente i comandi che verranno eseguiti dal programma
(AutoHotKey.exe).Uno script puo' anche contenere hotkeys e hotstrings e perfino essere costituito
solamente da essi. Tuttavia, in assenza di hotkeys e di hotstrings, uno script effettuera' in sequenza i
relativi ordini dal alto al basso quando verr lanciato.

Per creare un nuovo script:


1.
2.
3.
4.
5.

Aprire Esplora risorse e selezionare una cartella a propria scelta.


Apri il menu' "File" e seleziona Nuovo>>AutoHotKey script (o un nuovo file .txt )
Scrivi il nome del file, sincerandoti che abbia come estensione .ahk. per esempio: prova.ahk
Tasto destro sul file e scegli Edit-Script.
in una linea scrivi quanto segue:
#space::Run www.google.com

Il simbolo # corrisponde al tasto Windows, pertanto #space significa spingere il tasto Windows e la barra
spaziatrice per attivare la Hotkey. I :: significano che i comandi che seguono verranno eseguiti ogni volta
che questa hotkeys viene premuta, in questo caso per andare al sito di google. per provare questo script
continuare come segue:
1. Salva il file.
2. In esplora risorse, fai doppio click sul file per lanciarlo, apparira' una nuova Tray icon.
3. tieni premuto il tasto Windows e premi la barra spaziatrice. la pagina di google apparira' nel
browser predefinito.
4. per uscire o editare il file, cliccalo col tasto destro nella tray icon.
Note: script multipli possono essere lanciati simultaneamente, ognuno con la propria Tray icon, ma ogni
scritto puo' avere piu' Hotkeys e Hotstrings al suo interno

http://www.autohotkey.it/docs/Tutorial.htm

07/11/2006

AutoHotkey Tutorial in Italiano

Pagina 2 di 6

Apertura di un programma o di un documento


Il comando RUN viene usato per lanciare un programma, documento, URL, o una scorciatoia. qui' ci sono
degli esempi comuni:
Run notepad
run c:\My documents\address list.doc
run c:\My documents\My shortcut.lnk
run www.yahoo.com
run mailto:qualcuno@qualchedominio.com
Una Hotkey puo' essere assegnata ad ognuno degli esempi , includendo una Hotkey label (etichetta).
nell'esempio seguente la Hotkey assegnata e' win+n, nel secondo e' control+Alt+c:
#n::run notepad
^!c::run calc.exe
I precedenti esempi sono conosciuti come "comandi su singola linea" in quanto consistono in un singolo
comando, per avere piu' di un comando eseguito da un a Hotkey, mettere nella prima linea la definizione
della Hotkey e mettere all'ultima riga return. Per Es:
#n::
Run http://www.google.com
Run Notepad.exe
return
Se il programma o il documento non sono integrati con il sistema, specificare il percorso completo per
lanciarlo:
Run %A_ProgramFiles%\Winamp\Winamp.exe
Nel suddetto esempio, %A_ProgramFiles% una built-in variable (variabile incorporata).
Usando questa anziche' qualcosa simile a C:\programmi\ rendera' lo script piu' portatile, ossia piu'
facilmente portabile su un altro PC.
Nota: i nomi dei comandi e delle variabili non sono case-sensitive. Per Es: "Run" e' uguale a "run", e
"A_ProgramFile" e' uguale a "a_programfile".
Per avere uno script che aspetti la chiusura del programma o del documento per continuare, usa RunWait
anziche' Run; nel prossimo esempio la MsgBox non comparira' finche' non verra' chiuso Notepad.
RunWait Notepad
MsgBox L'utente ha terminato (Notepad e' stato chiuso).
Per imparare di piu' su come lanciare i programmi -- come passare parametri, specificare la cartella di
lavoro, e scoprire il codice di uscita del programma clicca qui'.

Trasmettere le combinazione di tasti e i click del mouse


I keystrokes sono inviati alla prima finestra attiva usando il comando send. Nell' esempio che segue,
Win+s diventa un Hotkey per scrivere una firma. Assicurati che una finestra tipo editor o messaggio e-mail
sia attiva prima di premere Win+s:
#s::
Send Sincerely,{Enter}John Smith
return
Nel suddetto esempio tutte le lettere sono inviate testualmente tranne {Enter}, che simula la pressione
del tasto enter. Il prossimo esempio illustra alcuni dei caratteri speciali piu comuni
Send ^c!{tab}pasted:^v
La precedente linea invia un Control+C seguito da un Alt+Tab seguito dalla stinga "pasted:" seguita da un
Control+V. Guarda il comando Send per un lista completa dei segni e dei tasti.
In fine, keystrokes possono possono essere inviati in risposta di abbreviazioni da te scelte, chiamate
hotstrings. Per esempio, ogni volta che scrivi Btw seguito da uno spazio o una virgola, la riga seguente lo
rimpiazzer con "By the way":
::btw::by the way
Mouse Clicks: Per inviare un mouse click a una finestra e' prima necessario determinare le coordinate X e
Y all' interno delle quali il click dovrebbe essere fatto. Questo puo' essere fatto sia con AutoScriptWriter
che con Window Spy, inclusi entrambi in AutoHotkey. Il prossimo passo riguarda l' applicazione del metodo

http://www.autohotkey.it/docs/Tutorial.htm

07/11/2006

AutoHotkey Tutorial in Italiano

Pagina 3 di 6

Window Spy:
1. Lancia Window Spy dal try-icon menu o da Start Menu.
2. Attivare la finestra desiderata cliccando sulla barra del titolo o con Alt+Tab (Window Spy rimarr'
sempre "on top")
3. Muovi il cursore del mouse nella posizione desiderata, nella finestra di target e scrivi le coordinate
del mouse mostrate da Window Spy (o spingi Shift-Alt-Tab per attivare Window Spy cosi che le
coordinate "congelate" possano essere copiate e incollate).
4. Applica le coordinate scoperte al comando Click. L'esempio che segue "clicca" il tasto sinistro del
mouse:
Click 112, 223
Per muovere il mouse senza cliccarlo usa MouseMove. Per trascinare il mouse, usa MouseClickDrag.

Attivazione e Manipolazione delle finestre


Per attivare una finestra (metterla in primo piano), usa WinActivate. Per controllare se una finestra esiste,
usa IfWinExist o WinWait. Il seguente esempio illustra questi comandi:
IfWinExist Untitled - Notepad
{
WinActivate } else { Run Notepad
WinWait Untitled - Notepad WinActivate }
Il precedente esempio prima cerca ogni finestra esistente il cui titolo sia "Untitled - Notepad" (case
sensitive). Se viene trovata tale finestra, viene attivata. Altrimenti viene lanciato Notepad e lo script
aspetta che appaia la finestra Untitled, a questo punto verra' attivata. L' esempio utilizza anche il last
found window per evitare la necessita' del titolo della finestra con ogni WinActivate.
Alcuni altri comandi window comunemente usati sono:
- IfWinActivate: controlla se la finestra specificata e' attiva.
- WinWaitActive: aspetta che la finestra specificata diventi attiva (usata tipicamente dopo un keystroke
tipo Control-F).
- WinClose: chiude la finestra specificata
- WinMove: muove o ridimensiona la finestra specificata
- WinMinimize, WinMaximize, WinRestore: riduce a icona, ingrandisce o ripristina la finestra specificata.

Ottenere informazioni dall'utente con MsgBox, InputBox, ECC.


Il seguente esempio mostra una finestra di dialogo con due bottoni (YES e NO):
MsgBox, 4, , Vuoi continuare?
IfMsgBox, No
return
; Altrimenti, se l'utente clicca YES.
MsgBox Hai cliccato YES.
Usa il comando InputBox per sollecitare l' utente a scrivere una stringa. Usa FileSelectFile o
FileSelectFolder per sceglier un file o una cartella. Per funzioni piu' avanzate, usa il comando Gui per
creare personalizzazioni e interfaccia utente.
Nota: potresti aver notato dall' esempio precedente che la prima virgola di ogni comando puo essere
omessa. Per esempio:
MsgBox Questo e' corretto. (la prima virgola puo' essere omessa)
MsgBox, anche questo e' corretto.

Utilizzare le variabili e il clipboard


Una variabile e' un area della memoria nella quale gli script immagazzinano un valore. Tutte le variabili
sono immagazzinate come stringhe alfanumeriche, una variabile contenente solo numeri (con un punto
decimale opzionale) e' automaticamente trasformata in un numero quando un operazione matematica o di
comparazione lo richiede. Per contro, il risultato di un operazione matematica e' riconvertita in una stringa
quando e' necessario che questa venga immagazzinata in una variabile.
Con l'eccezione delle variabili locali nelle FUNZIONI, tutte le variabili sono globali; il loro contenuto puo

http://www.autohotkey.it/docs/Tutorial.htm

07/11/2006

AutoHotkey Tutorial in Italiano

Pagina 4 di 6

essere letto o alterato da ogni parte dello script. In piu', le variabili non sono dichiarate; divengono reali
semplicemente utilizzandole (ed ogni variabile nasce vuota/bianca).
Per assegnare una stringa ad una variabile, segui l' esempio:
MyVar1 = 123
MyVar2 = my string
Per comparare il contenuto di una variabile con un numero o una stringa, segui l' esempio:
if MyVar2 = my string
{
MsgBox MyVar2 contiene la stringa "my string".
}
if MyVar1 >= 100
{
MsgBox MyVar1 contiene %MyVar1%, che e' un numero maggiore o uguale a 100.
}
Nell MsgBox sopra, si noti che la seconda occorrenza di MyVar1 e' inclusa nei segni percent. Questo
mostra il contenuto di MyVar1. La stessa tecnica puo' essere usata per copiare il contenuto di una variabile
ad un altra. Per esempio:
MyVarConcatenated = %MyVar1% %MyVar2%
La linea immagazzina la stinga "123 my string" (senza le virgolette) nella variabile MyVarConcatenated.
Per comparare il contenuto di una variabile con un altra considera questo esempio:
if (ItemCount > ItemLimit + 1)
{
MsgBox Il valore di ItemCount, che e' %ItemCount%, e' maggiore di %ItemLimit% + 1.
}
Nota che la prima linea dell'esempio contiene parentesi. Le parentesi significano che il controllo IF contiene
una espressione. Senza questa, la linea sara' considerata una "controllo IF senza espressione", e questo
necessiter dei segni percent intorno a ItemLimit. Sono limitati ad una singola operazione di confronto;
per questo non possono contenere operazioni matematiche o i simboli tipo "AND" e "OR".
Math: per operare un operazione matematica, usa l'operatore "colon-equal" (:=) per assegnare il risultato
di un espressione ad una variabile come nell' esempio che segue:
NetPrice := Price * (1 - Discount/100)
Clipboard: La variabile chiamata Clipboard e' speciale perch' contiene il testo corrente sulla clipboard
(l'ultima cosa che hai copiato). Nondimeno, puo' essere usato come se fosse una normale variabile. Per
esempio la righe che segue mostra contenuto della clipboard:
MsgBox %clipboard%
Per cambiare il contenuto della clipboard, considera il seguente esempio, che sostituisce il contenuto
corrente con il nuovo testo:
clipboard = A line of text.`r`nA second line of text.`r`n
I due caratteri , `r e `n (accento seguito da la lettera "r" o "n") sono usati per indicare due caratteri
speciali: carriage return e linefeed. Questi due caratteri iniziano una nuova linea di testo come se l'utente
avesse premuto il tasto Enter.
Per accodare testo ad un clipboard (o qualunque altra variabile), segui questo esempio:
clipboard = %clipboard% e qui ci va il testo da collegare
Leggere la sezione clipboard e variables per i dettagli.

Ripetere una serie di azioni piu' e piu' volte


Per ripetere un azione piu' volte consecutivamente, il metodo e' il Loop. Il seguente esempio mostra un
MsgBox tre volte:
Loop 3

http://www.autohotkey.it/docs/Tutorial.htm

07/11/2006

AutoHotkey Tutorial in Italiano

Pagina 5 di 6

{
MsgBox Questo messaggio comparira' tre volte.
}
Si puo' anche specificare una variabile dopo la parola Loop, cosa utile in situazioni dove il numero delle
iterazioni e determinato da qualche parte all' interno dello script:
Loop %RunCount%
{
Run C:\Check Server Status.exe
Sleep 60000 ; aspetta 60 secondi.
}
Nell' esempio, il Loop e' ripetuto il numero di volte specificato, a meno che RunCount contenga 0, nel qual
caso il loop e' interamente skippato. Un Loop puo' anche auto concludersi quando uno o piu' condizioni
cambiano, come mostrato qui sotto:

Loop ; se non viene specificato alcun numero, si ottiene un loop infinito, a meno che non vi sia al suo interno un "break
{
PixelGetColor, Color, 11, 22
if Color = 0xEEAA99 ; se lo screen pixel e' di questo colore
break ; il loop si interrompe.
; altrimenti,continua a cliccare L' OK button fintanto che il pixel non cambi colore
ControlClick, OK, Title of Target Window
}
L' esempio e' sostanzialmente identico a cio' che viene chiamato un "while...do" Loop. La frase "while...do"
indica che il loop fa una determinata azione mentre (while) una determinata condizione rimane vera. In
questo caso, il Loop continua a premere un bottone mentre il pixel e' del colore sbagliato. Quando appare
il colore giusto il Loop si ferma con il comando Break, che causa l'esecuzione di un salto alla linea
succesiva al segno di chiusura del Loop.
Gli esempi mostrati precedentemente sono Loop generici (general-purpose). Per necessita' piu' specifiche,
considera uno dei seguenti Loop:
File-reading/writing loop: Richiama le linee in un file di testo, una per volta. Puo' essere usato per
trasformare un file in un formato differente linea-per-linea. Puo' essere usato anche per cercare linee che
rispondano al tuo criterio di ricerca.

Files and folders loop: Richiama il file o la cartella specificata, una per volta. Questo consente l' esecuzione
di un operazione in ogni file o cartella che risponda ai criteri impostati.
Parsing loop: Richiama substrings dalle stringhe una per volta. Questo consente a stringhe tipo
"Red,Green,Blue" di essere facilmente divise nei suoi tre campi.
Registry loop: Richiama il valore della subkey del registro specificato, uno alla volta.

Manipolare file e cartelle


Per aggiungere testo alla fine di un file (o crearne uno nuovo), usa FileAppend come mostrato nell
seguente esempio. Nota che si usa `n (linefeed) per iniziare una nuova riga di testo in seguito:
FileAppend, A line of text to append.`n, C:\My Documents\My Text File.txt
per sovrascrivere un file esistente, usa FileDelete invece di FileAppened. Per esempio:
FileDelete, C:\My Documents\My Text File.txt
Alcuni dei comandi file e folder piu comunemente usati sono:





FileRead: Legge l' intero contenuto di un file contenuto in una variabile.


File-reading Loop: Richiama le linee in un file di testo, uno per uno.
IfExist: Determina se un file o una cartella esistono.
FileSelectFile and FileSelectFolder: Mostra un dialogo per l' user per prendere un file o una cartella.

http://www.autohotkey.it/docs/Tutorial.htm

07/11/2006

AutoHotkey Tutorial in Italiano








Pagina 6 di 6

FileDelete/FileRecycle: Delete/recycle uno o piu file. Usa FileRemoveDir per cancellare un intera
cartella.
FileCopy/FileMove: Copiare/muovere uno o piu' file. Usa FileCopyDir/FileMoveDir per
copiare/muovere una cartella intera .
File Loop: Richiama i file e cartelle contenuti in una cartella, una per volta.
FileSetAttrib e FileSetTime: Cambia gli attributi o i timestamp di uno o piu file (data di creazione o
di ultimo accesso).
IniRead, IniWrite, e IniDelete: Crea, accede e aggiorna standard-format INI files.
RegRead, RegWrite, RegDelete, e Registry Loop: Lavora con il registro Windows.

Descrizione di altre caratteristiche


Guarda la command list per una panoramica di ogni comando.

Download | Documentation | Changelog | Support | Forum | X Traduttor

http://www.autohotkey.it/docs/Tutorial.htm

07/11/2006