![]() |
Le Hotkey spesso si associano ai tasti di scelta rapida per la loro capacità di innescare facilmente un'azione (come lanciare un programma o una macro della tastiera). Nel seguente esempio, la Hotkey Win+N è configurata per lanciare il Notepad. Il segno cancelletto[#] corrisponde al tasto di Windows, è conosciuto come un modificatore:
#n::
Run Notepad
return
Il comando return
assolve alla funzione di fine-Hotkey. Tuttavia, se
una Hotkey esegue una singola linea, questa puo' essere
scritta
alla destra dei doppi-due-punti. Ossia il return e' implicito:
#n::Run Notepad
Per utilizzare piu' di un modificatore con una Hotkey, elencali consecutivamente (l'ordine non conta nulla). Il seguente esempio utilizza ^! per indicare Control+Alt:
^!s::
Send Sincerely,{enter}John Smith ; Questa linea invia la combinazione di tasti alla finestra attiva.
return
| Simboli | Descrizione |
| # | Win (Tasto Windows) |
| ! | Alt |
| ^ | Control |
| + | Shift (Maiuscolo) |
| & | Un & puo' essere usato tra due key o mouse- button per combinarli in una Hotkey personalizzata. Vedere sotto per i particolari. Tali hotkeys sono ignorate da Windows 95 /98/Me. |
| < | Usare il simbolo minore-di <!a e' simile a !a, eccetto che solo il tasto Alt di sinistra richiamera' l' Hotkey. Questo simbolo e' ignorato da Windows 95/98/ME. |
| > | Come sopra; mutatis mutandis. |
| <^>! |
AltGr (alternate graving). Se sulla tua tastiera e' presente il tasto AltGr al posto di Alt(sinistro), questa serie di simboli puo' essere usata per AltGr (necessarie Windows NT/2k/XP). Per Esempio: <^>!m::MsgBox Hai premuto AltGr+m. Altrimenti, per trasformare lo stesso AltGr in una Hotkey, usare il seguente Hotkey(senza alcune hotkey come le suddette): LControl & RAlt::MsgBox You pressed AltGr itself. |
| * |
Metacarattere: richiama la Hotkey anche se viene premuto un altro modificatore. Viene spesso utilizzato per rimappare key e bottoni *#c::Run Calc.exe ; Win+C, Shift+Win+C, Ctrl+Win+C, etc. Richiamano tutti questa Hotkey. Questo carattere viene ignorato da Windows 95/98/ME. |
| ~ |
Tilde: Quando viene lanciata la Hotkey, questa non blocchera' la funzione nativa di quel tasto. In entrambe gli esempi che seguono, il click-destro del mouse verra' inviato alla finestra attiva: ~RButton::MsgBox Hai cliccato il tasto destro del mouse Nota: 1) Diversamente dagli altri simboli puo' essere presente in alcune varianti di Hotkey ma assente in altre variants; 2) Speciali Hotkey che sostituiscono alt-tab ignorano sempre il carattere Tilde; 3) Il carattere tilde viene ignorato da Windows 95/98/ME |
| $ |
Questo generalmente e' necessario solamente se lo script usa il comando send per inviare la key che contiene in se' la Hotkey. L'esatto comportamento dell $ varia a seconda del sistema operativo: On Windows NT4/2k/XP or later: The $ prefix forces the keyboard hook to be used to implement this Hotkey, which as a side-effect prevents the Send command from triggering it. The $ prefix is equivalent to having specified #UseHook somewhere above the definition of this Hotkey. On Windows 95/98/Me: The Hotkey is disabled during the execution of its thread and re-enabled afterward. As a side-effect, if #MaxThreadsPerHotkey is set higher than 1, it will behave as though set to 1 for such hotkeys. |
| UP |
La parola UP puo' seguire il nome di una Hotkey, per richiamarla al rilascio del tasto anziche' alla sua pressione. L'esempio seguente remaps LWin a divenire LControl: *LWin::Send {LControl Down} "Up" puo' anche essere usato nelle normali Hotkey come nell'esempio: ^!r Up::MsgBox Hai premuto e rilasciato Ctrl+Alt+R. Funziona anche con combination hotkeys (es. F1 & e Up::) Questa caratteristica non funziona con i joystick buttons. Necessario Windows NT/2k/XP. |
|
Una tecnica simile alla precedente e' quella di fare una Hotkey in una key. Il vantaggio e' che anche se la Hotkey viene richiamata a rilascio del tasto, andra' in esecuzione soltanto se non viene premuta un' altro tasto prima del rilacio. Per es.: LControl & F1::return ; Trasforma il left-control in un prefisso usandolo prima di "&" almeno una volta. |
(Guarda la Key List per una lista completa di keyboard keys e di bottoni del mouse/joystick)
Hotkey multipli possono essere impilati verticalmente per fare loro
richiamare la stessa azione. Per esempio:
^Numpad0::
^Numpad1::
MsgBox Sia premendo Control+Numpad0 che Control+Numpad1 verra' visualizzato questo messaggio.
return
Una key o una key-combination puo essere disabilitata dell' intero sistema assegnandogli di non compiere nulla. Il seguente esempio disabilita il tasto Windows di destra:
RWin::return
Con la direttiva #IfWinActive/Exist si può far compiere ad una Hotkey un'azione differente (o anche nessuna) a seconda del tipo di finestra che è attiva o esistente. Per esempio:
^a::
IfWinActive, ahk_class Notepad
{
SendInput hai premuto ctrl-a con notepad attivo
}
else
{
MsgBox hai premuto ctrl-a con notepad attivo
}
return
Puoi definire combinazioni personalizzate di due tasti (tranne che per i joystick-button) usando " & " tra di loro. Nei prossimi esempi per richiamare le Hotkey, bisogna prima premere Numpad0 e poi l'altro tasto mentre si continua a premere il primo.
Numpad0 & Numpad1::MsgBox Hai premuto Numpad1 mentre tenevi premuto Numpad0.
Numpad0 & Numpad2::Run Notepad
Nel precedente esempio, Numpad0 diviene un prefix key. I Prefix keys possono anche essere assegnati alle loro propie-azioni come nel seguente esempio, ma le loro propie-azioni vengono richiamate quando il tasto viene rilasciato e solo se non hai spinto altri tasti mentre il primo era premuto:
Numpad0::WinMaximize A ; Maximize la finestra attiva.
Numlock, Capslock, and Scrolllock: Queste key possono essere forzate ad essere "AlwaysOn" o "AlwaysOff". Per esempio: SetNumlockState AlwaysOn
Overriding Explorer's hotkeys: Le Hotkey integrate in Windows come Win-E (#e) e Win-R (#r) possono essere sovrascritte semplicemente assegnando loro una azione nello script. Guarda la override page per maggiori dettagli.
Sostituti per Alt-Tab: Hotkey puo' fornire alternative al alt-tab. Per esempio, le due seguenti Hotkey ti consentono di fare alt-tab con la mano destra:
RControl & RShift::AltTab ; Tenendo premuto right-control premere right-shift ripetutamente per muoversi in avanti.
RControl & Enter::ShiftAltTab ; Senza bisogno di rilasciare right-control, premi Enter per tornare indietro.
Per maggiori dettagli: Alt-Tab.
Le Hotkey richiamate dal movimento della rotellina del mouse sono supportate da le key WheelDown e WheelUp. Per esempio:
MButton & WheelDown::MsgBox Hai girato la rotellina tenendo premuto il tasto sotto la rotellina (tasto centrale).
^!WheelUp::MsgBox Hai girato la rotellina tenendo premuto Control+Alt.
In v1.0.43.03+, La variabile integrata A_EventInfo contiene il numero di tacche da cui la rotella è stata girata, che è sempre almeno 1. Un intero maggiore di 1 si ottiene ruotando la rotellina velocemente, benche' questo possa cambiare da mouse a mouse a seconda dell' hardware. Esempio: ~WheelDown::ToolTip %A_EventInfo%
Una delle Hotkey maggiormente comoda per la rotellina del mouse, e' quella di sfuttarla per scorrere anche lateralmente il testo nelle finestre. Per esempio, la seguente coppia di Hotkey scorre orizzontalmente il testo anziche' verticalmente quando si tiene premuto il tasto control di sinistra mentre si ruota la rotellina:
~LControl & WheelUp:: ; Scroll a sinistra.
ControlGetFocus, fcontrol, A
Loop 2 ; <-- Aumenta questo valore per scorrere piu' velocemente.
SendMessage, 0x114, 0, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 0 after it is SB_LINERIGHT.
return
~LControl & WheelDown:: ; Scroll a destra.
ControlGetFocus, fcontrol, A
Loop 2 ; <-- Aumenta questo valore per scorrere piu' velocemente.
SendMessage, 0x114, 1, 0, %fcontrol%, A ; 0x114 is WM_HSCROLL and the 1 after it is SB_LINELEFT.
return
Le Hotkey per la rotellina del mouse possono generare solamente down-events, non possono essere utilizzati come key-up hotkeys.
Ogni tasto del Tastierino numerico puo' essere usato per richiamare due differenti subroutine Hotkey a seconda dello stato di Numlock. Altrimenti, un tasto del Tastierino numerico (numpad key) puo' richiamare sempre la stessa subroutine indipendentemente dallo stato di Numlock. Per esempio:
NumpadEnd::
Numpad1::
MsgBox, Questa Hotkey viene lanciata sia se bloc-Num (Numlock) e' attivo o meno.
return
Se il simbolo tilde (~) viene utilizzato in una Hotkey con una prefix key almeno una volta, Questo prefisso verra' sempre richiamato e inviato alla finestra attiva. Per esempio, in entrambe i seguenti esempi, la finestra attiva ricevera' anche l'azione tasto destro, anche se solo una delle definizioni contiene la tilde:
~RButton & LButton::MsgBox Hai premuto il tasto sinistro del mouse tenendo premuto il destro.
RButton & WheelUp::MsgBox Hai girato la rotellina del mouse tenendo premuto il tasto destro.
Il comando Suspend puo' disabilitare temporaneamente tutte le Hotkey tranne per quelle che rendiate esenti. Per maggiori propieta', guarda #IfWinActive/Exist.
Per mezzo di comandi Hotkey, possono essere create Hotkey dinamiche mentre lo script e' in corso. I comandi possono anche modificare, inabilitare, o permettere individualmente le Hotkey dello stesso script .
Le Hotkey per il Joystick attualmente non supportano modificatori-prefisso quali ^ (Control) e # (Win). Tuttovia, puoi adoperare GetKeyState per simulare questo effetto, come mostrato nel seguente esempio:
Joy2::
if not GetKeyState("Control") ; Neither the left nor right Control key is down.
return ; i.e. Do nothing.
MsgBox You pressed the first joystick's second button while holding down the Control key.
return
Ci possono essere casi in cui un Hotkey puo' aspettare che le relative key vengano rilasciate prima di continuare. Considerare il seguente esempio:
^!s::Send {Delete}
Premendo Control-Alt-S indurrebbe il sistema a comportarsi come se premeste Control-Alt-Canc (due to the system's aggressive detection of Ctrl-Alt-Delete). Per lavorare con questo, utilzza KeyWait per aspettare che i tasti vengano rilasciati, per esempio:
^!s::
KeyWait Control
KeyWait Alt
Send {Delete}
return
Il nome di una Hotkey (label) puo' essere utilizzato come target da Gosub o Goto. per esempio: Gosub ^!s
Un uso usuale delle Hotkey e' di far partire e arrestare un azione ripetitiva, come una serie di combinazioni-di-tasti (keystrokes) o mouse clicks. Per un esempio su cio', osserva this FAQ topic.
Per finire, ogni script e' quasi multi-threaded, cio' consente di lanciare una Hotkey mentre la precedente subroutine e' in esecuzione. Per esempio, nuove Hotkey possono essere lanciate ogni volta che una MsgBox viene visualizzata dall'attuale Hotkey.
Ogni Hotkey con Alt-Tab deve essere di due tasti, che vengono legati dal simbolo congiunzione (&). Nel prossimo esempio dovrai tenere premuto il tasto alt-di-destra e premere j o k per muoverti nel alt-tab menu:
RAlt & j::AltTab
RAlt & k::ShiftAltTab
AltTab e ShiftAltTab sono due dei comandi speciali che vengono riconosciuti solamente quando scritti ognuno nella propia riga.
Lista completa:
AltTab: Una volta che viene visualizzato l' alt-tab menu, si muove in avanti all interno di esso. Oppure, visualizza l' alt-tab menu, se la Hotkey e' una "&" combinatione di due tasti; altrimenti, non fa niente.
ShiftAltTab: Uguale al precedente ma si muove indietro all interno di alt-tab menu.
AltTabAndMenu: Se l' alt-tab menu e' visualizzato si muove in avanti. Altrimenti, lo visualizza.
AltTabMenuDismiss: Chiude alt-tab menu.
Per meglio comprendere : La rotellina del mouse puo' diventare un valido sostituto di Alt-tab. Nel prossimo esempio, cliccando il tasto centrale del mouse (sotto la rotellina) si visualizza l' alt-tab menu e girando la rotellina si naviga all'interno di esso:
MButton::AltTabMenu
WheelDown::AltTab
WheelUp::ShiftAltTab
Per chiudere una Hotkey che ha richiamato l' alt-tab menu senza attivare la finestra selezionata, usa l'hotkeycome di seguito. Potrebbe richiedere aggiustamenti dipendenti da : 1) the means by which the alt-tab menu was originally displayed; e 2) Se lo script ha la keyboard hook istallata.
LCtrl & CapsLock::AltTab
!MButton:: ; Tasto centrale del mouse. Il prefisso ! lo fa' agire come se il tasto Alt fosse premuto (come e' quando alt-tab menu e' visibile).
IfWinExist ahk_class #32771 ; controlla se alt-tab menu e' visibile sullo schermo.
Send !{Escape}{Alt up}
return
Attualmente, tutte le azioni speciali della Alt-tab devono essere assegnate direttamente ad un Hotkey come negli esempi qui sopra (cioè non possono essere usate come se siano state comandi). Inoltre, la presenza del alt-tab menu può essere rilevata tramite IfWinExist ahk_class #32771
Le azioni personalizzate della alt-Tab possono anche essere generate attraverso hotkeys. Nel seguente esempio, premete F1 per visualizzare il menu e per avanzare in avanti in esso. Allora premete F2 per attivare la finestra selezionata (o premere Esc per annullare):
*F1::Send {Alt down}{tab} ; L'asterisco e' necessario in questo caso.
!F2::Send {Alt up} ; Rilasciando il tasto Alt, si attivera' la finestra selezionata.
~*Escape::
IfWinExist ahk_class #32771
Send {Escape}{Alt up} ; Cancella il menu senza attivare la finestra selezionata.
return
Download | Documentation | Changelog | Support | Forum | X Traduttori