AutoHotkey Miniguida Base
Inviato: 12/02/2012, 15:11
AutoHotkey è un programma che permette di creare degli script, con questi è possibile fare un mucchio di cose interessanti.
Questa miniguida vuole essere una base di partenza per alcune delle funzioni di base più utili per noi che utilizziamo cabinati arcade.
PREMETTO CHE NON SONO UNO SPECIALISTA DI AUTOHOTKEY MA SUL FORUM UFFICIALE CI SONO UTENTI MOTO CAPACI E DISPONIBILISSIMI E UN SACCO DI SCRIPT GIÀ PRONTI BASTA CERCARE
Per prima cosa andiamo a prenderci il programma reperibile quì http://www.autohotkey.com/download/ oppure scarichiamolo direttamente da quì http://l.autohotkey.net/AutoHotkey_L_Install.exe
A questo punto installiamo il programma seguendo le istruzioni dell' installer.
Terminata l' installazione siamo subito pronti a cominciare, clikkiamo con il tasto destro del mouse e ci troviamo una funzione nuova di zecca sotto la voce
"Nuovo" -- >"AutoHotkey Script"
Selezioniamo "AutoHotkey Script" e ci apparirà un nuovo file con estensione .ahk, ora se clikkiamo con il tasto destro del mouse abbiamo 3 possibilità, "Run Script" "Edit Script" "Compile Script" selezioniamo edit, si aprirà il blocco note e ora potremo cominciare a lavorare.
Cominciamo subito con uno script di base cioè assegnare un tasto ad un altro, questo il comando
#NoTrayIcon (questo codice serve per non far apparire l' icona vicino all' orologio (system tray))
#SingleInstance, force (questo codice serve per evitare che vengano eseguiti più script uguali)
E' sempre buona norma inserire i 2 codici sopra a inizio script salvo diverse necessità)
ESC::W
Con questo comando si và a modificare il funzionamento del tasto ESC in poche parole premendo ESC è come se premessimo W
Copiamo il codice ESC::W e incolliamolo dentro il blocco note aperto in precedenza selezionando la voce "Edit Script", salviamo e chiuduamo il blocco note,
a questo punto andiamo a rinominare il file in ESCtoW (per esempio) poi con il tasto destro facciamo "Compile Script"
Adesso dovremmo trovarci un file eseguibile chiamato ESCtoW se lo andiamo ad avviare come per magia il nostro tasto ESC sarà diventato W.
Per ritornare al normale funzionamento del tasto ESC basta aprire il task manager e chiudere il processo ESCtoW
L' utilità di tutto questo potrebbero essere molteplici ma andiamo a specificarne una molto importante dal mio punto di vista.
Avviando l' emulatore snes9x per esempio, se premiamo il pulsante ESC appare la barra di stato in alto e questo è antiestetico per un cabinato
sopratutto se abbiamo impostato un ritardo di qualche secondo nella chiusura del Front End, adesso basterà impostare il front end in modo che carichi il programma ESCtoW all' avvio dell' emulatore snes e impostare come tasti di uscita ESC e W ed il gioco è fatto all' uscita dell' emulatore basterà dire al front end di chiudere tutti i programmi lanciati all' avvio oppure di chiudere lo specifico processo in questo caso ESCtoW.exe.
AVVERTENZA
Ho riscontrato problemi con Maximus Arcade utilizzando la rimappatura dei tasti e ogni tanto smette di funzionare la tastiera (solo nel front end) percui sconsiglio di usarlo con il suddetto Front End (un vero peccato)
Andiamo avanti e vediamo come uccidere il processo se il Front End non ci permette di farlo nativamente.
Se il Front end non ha la possibilità o l' opzione per chiudere i processi lanciati all' avvio dell' emulatore magari ha l' ozione di lanciare qualcosaltro all' uscita dell' emulatore,
creiamoci un nuovo script e andiamo a incollarci questo nuovo codice
#NoTrayIcon
#SingleInstance force
Process, Exist, ESCtoW.exe
IfGreater, ErrorLevel, 0, Process, Close, ESCtoW.exe
In poche parole controlla nel task manager e se trova il processo ESCtoW lo uccide
Ecco un altro codice che potrebbe rivelarsi utile in alcuni casi
#NoTrayIcon
#SingleInstance, force
Process, Exist, Explorer.exe
If !(Errorlevel)
Run, Explorer.exe,,,ExplorerPID
Else
WinActivate, ahk_class Explorer
Return
Ho fatto un esempio banale utilizzando Explorer come programma da avviare, se il programma da avviare non è un programma di sitema dobbiamo aggiungere il percorso subito dopo Run, per esempio Run, C:\Snes\Snes9x.exe e sostituire tutti i richiami al programma in questo modo
#NoTrayIcon
#SingleInstance, force
Process, Exist, Snes9x.exe
If !(Errorlevel)
Run, C:\Snes\Snes9x.exe,,,Snes9xPID
Else
WinActivate, ahk_class Snes9x
Return
In poche parole controlla il task manager e vede se il processo Explorer.exe è presente, se presente si chiude senza eseguire nulla altrimenti
lo lancia, questo evita per esempio di avere un mucchio di finestre di Explorer all' uscita del Front End
Se Abbiamo la necessità di aprire più programmi (sempre se non sono già aperti) possiamo usare questo codice
#NoTrayIcon
#SingleInstance, force
Process, Exist, Notepad.exe
If !(Errorlevel)
Run, Notepad.exe,,, NotepadPID
else
WinActivate, ahk_class Notepad
Process, Exist, calc.exe
If !(Errorlevel)
Run, calc.exe,,,CalculatorPID
else
WinActivate, ahk_class CalcFrame
Return
Pure quì come sopra, ho usato semplici programmi di sistema (blocconote e calcolatrice) bisogna specificare i percorsi esatti se i programmi da eseguire non sono di sistema.
Questo codice invece serve a premere un pulsante alla chiusura di un processo specifico
#NoTrayIcon
#SingleInstance force
Process, Wait, Notepad.exe
Process, WaitClose, Notepad.exe
Send {Esc down}
Sleep 1000
Send {Esc up}
In poche parole il programma spetta il processo notepad nel task manager, appena lo trova aspetta la sua chiusura, appena chiuso invia un impulso alla tastiera in questo caso Esc premuto per un secondo poi rilasciato
Questa miniguida vuole essere una base di partenza per alcune delle funzioni di base più utili per noi che utilizziamo cabinati arcade.
PREMETTO CHE NON SONO UNO SPECIALISTA DI AUTOHOTKEY MA SUL FORUM UFFICIALE CI SONO UTENTI MOTO CAPACI E DISPONIBILISSIMI E UN SACCO DI SCRIPT GIÀ PRONTI BASTA CERCARE
Per prima cosa andiamo a prenderci il programma reperibile quì http://www.autohotkey.com/download/ oppure scarichiamolo direttamente da quì http://l.autohotkey.net/AutoHotkey_L_Install.exe
A questo punto installiamo il programma seguendo le istruzioni dell' installer.
Terminata l' installazione siamo subito pronti a cominciare, clikkiamo con il tasto destro del mouse e ci troviamo una funzione nuova di zecca sotto la voce
"Nuovo" -- >"AutoHotkey Script"
Selezioniamo "AutoHotkey Script" e ci apparirà un nuovo file con estensione .ahk, ora se clikkiamo con il tasto destro del mouse abbiamo 3 possibilità, "Run Script" "Edit Script" "Compile Script" selezioniamo edit, si aprirà il blocco note e ora potremo cominciare a lavorare.
Cominciamo subito con uno script di base cioè assegnare un tasto ad un altro, questo il comando
#NoTrayIcon (questo codice serve per non far apparire l' icona vicino all' orologio (system tray))
#SingleInstance, force (questo codice serve per evitare che vengano eseguiti più script uguali)
E' sempre buona norma inserire i 2 codici sopra a inizio script salvo diverse necessità)
ESC::W
Con questo comando si và a modificare il funzionamento del tasto ESC in poche parole premendo ESC è come se premessimo W
Copiamo il codice ESC::W e incolliamolo dentro il blocco note aperto in precedenza selezionando la voce "Edit Script", salviamo e chiuduamo il blocco note,
a questo punto andiamo a rinominare il file in ESCtoW (per esempio) poi con il tasto destro facciamo "Compile Script"
Adesso dovremmo trovarci un file eseguibile chiamato ESCtoW se lo andiamo ad avviare come per magia il nostro tasto ESC sarà diventato W.
Per ritornare al normale funzionamento del tasto ESC basta aprire il task manager e chiudere il processo ESCtoW
L' utilità di tutto questo potrebbero essere molteplici ma andiamo a specificarne una molto importante dal mio punto di vista.
Avviando l' emulatore snes9x per esempio, se premiamo il pulsante ESC appare la barra di stato in alto e questo è antiestetico per un cabinato
sopratutto se abbiamo impostato un ritardo di qualche secondo nella chiusura del Front End, adesso basterà impostare il front end in modo che carichi il programma ESCtoW all' avvio dell' emulatore snes e impostare come tasti di uscita ESC e W ed il gioco è fatto all' uscita dell' emulatore basterà dire al front end di chiudere tutti i programmi lanciati all' avvio oppure di chiudere lo specifico processo in questo caso ESCtoW.exe.
AVVERTENZA
Ho riscontrato problemi con Maximus Arcade utilizzando la rimappatura dei tasti e ogni tanto smette di funzionare la tastiera (solo nel front end) percui sconsiglio di usarlo con il suddetto Front End (un vero peccato)
Andiamo avanti e vediamo come uccidere il processo se il Front End non ci permette di farlo nativamente.
Se il Front end non ha la possibilità o l' opzione per chiudere i processi lanciati all' avvio dell' emulatore magari ha l' ozione di lanciare qualcosaltro all' uscita dell' emulatore,
creiamoci un nuovo script e andiamo a incollarci questo nuovo codice
#NoTrayIcon
#SingleInstance force
Process, Exist, ESCtoW.exe
IfGreater, ErrorLevel, 0, Process, Close, ESCtoW.exe
In poche parole controlla nel task manager e se trova il processo ESCtoW lo uccide
Ecco un altro codice che potrebbe rivelarsi utile in alcuni casi
#NoTrayIcon
#SingleInstance, force
Process, Exist, Explorer.exe
If !(Errorlevel)
Run, Explorer.exe,,,ExplorerPID
Else
WinActivate, ahk_class Explorer
Return
Ho fatto un esempio banale utilizzando Explorer come programma da avviare, se il programma da avviare non è un programma di sitema dobbiamo aggiungere il percorso subito dopo Run, per esempio Run, C:\Snes\Snes9x.exe e sostituire tutti i richiami al programma in questo modo
#NoTrayIcon
#SingleInstance, force
Process, Exist, Snes9x.exe
If !(Errorlevel)
Run, C:\Snes\Snes9x.exe,,,Snes9xPID
Else
WinActivate, ahk_class Snes9x
Return
In poche parole controlla il task manager e vede se il processo Explorer.exe è presente, se presente si chiude senza eseguire nulla altrimenti
lo lancia, questo evita per esempio di avere un mucchio di finestre di Explorer all' uscita del Front End
Se Abbiamo la necessità di aprire più programmi (sempre se non sono già aperti) possiamo usare questo codice
#NoTrayIcon
#SingleInstance, force
Process, Exist, Notepad.exe
If !(Errorlevel)
Run, Notepad.exe,,, NotepadPID
else
WinActivate, ahk_class Notepad
Process, Exist, calc.exe
If !(Errorlevel)
Run, calc.exe,,,CalculatorPID
else
WinActivate, ahk_class CalcFrame
Return
Pure quì come sopra, ho usato semplici programmi di sistema (blocconote e calcolatrice) bisogna specificare i percorsi esatti se i programmi da eseguire non sono di sistema.
Questo codice invece serve a premere un pulsante alla chiusura di un processo specifico
#NoTrayIcon
#SingleInstance force
Process, Wait, Notepad.exe
Process, WaitClose, Notepad.exe
Send {Esc down}
Sleep 1000
Send {Esc up}
In poche parole il programma spetta il processo notepad nel task manager, appena lo trova aspetta la sua chiusura, appena chiuso invia un impulso alla tastiera in questo caso Esc premuto per un secondo poi rilasciato