Mouse e keyboard macro e hotkey.

Download

Documentation

Changelog

Tutorial in italiano

Support

Forum  |  wiki

English Deutsch Français Russian Japanese 


all words  exact phrase

 

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

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. Aprire Esplora risorse e selezionare una cartella a propria scelta.
  2. Apri il menu' "File" e seleziona Nuovo>>AutoHotKey script (o un nuovo file .txt )
  3. Scrivi il nome del file, sincerandoti che abbia come estensione .ahk. per esempio: prova.ahk
  4. Tasto destro sul file e scegli Edit-Script.
  5. 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

 

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 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 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
{
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" o un "return".
{
 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:

Descrizione di altre caratteristiche

Guarda la command list per una panoramica di ogni comando.


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