AutoHotkey Miniguida Base

Problemi e soluzioni su configurazioni software, firmware
Avatar utente
bllpla
God of Arcade
God of Arcade
Messaggi: 3100
Iscritto il: 24/07/2005, 19:09
Località: Bellaria (RN)
Contatta:

AutoHotkey Miniguida Base

Messaggio da bllpla »

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
Ultima modifica di bllpla il 12/02/2012, 23:39, modificato 5 volte in totale.
Ecco il link al mio sito con le foto del cabinato

http://www.webalice.it/bllpla/ DI NUOVO ON-LINE

MAMEPC NEW
CPU - AMD Athlon II X3 450 3.2GHz
Ram - 4GB Dual-Channel DDR3 Corsair XMS3
Video - Gainward GeForce GT 440 1GB
Scheda Madre - ASUS M4A87TD EVO
HD - 120 SSD Crucial
HD - 250 SSD Crucial
Avatar utente
Kernel
God of Arcade
God of Arcade
Messaggi: 6794
Iscritto il: 25/07/2005, 10:54
Grazie Inviati: 2 volte
Grazie Ricevuti: 2 volte

Re: AutoHotkey Miniguida Base

Messaggio da Kernel »

bllpla ha scritto: 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)
Hai provato ad usare autoit al posto di autohotkey?
Avatar utente
bllpla
God of Arcade
God of Arcade
Messaggi: 3100
Iscritto il: 24/07/2005, 19:09
Località: Bellaria (RN)
Contatta:

Re: AutoHotkey Miniguida Base

Messaggio da bllpla »

A questo punto credo che possa bastare se mi vengono in mente altri script che potrebbero servire alla nostra causa li posterò in seguito, se qualcuno conosce o inventa qualche script utile può postarlo quì così da tenere ordinato il post, tente conto che gli script inventabili sono tantissimi e l' unico limite è la vostra fantasia :)

Per il mio amico massix89 ho creato uno script che monitora un processo nel task manager e quando questo processo si chiude lo script simula la pressione del tasto ESC per 2 secondi poi si chiude :)


Per ora è tutto spero di aver fatto cosa gradita :)

Ciaoooooooooooooooooooooooo
Ecco il link al mio sito con le foto del cabinato

http://www.webalice.it/bllpla/ DI NUOVO ON-LINE

MAMEPC NEW
CPU - AMD Athlon II X3 450 3.2GHz
Ram - 4GB Dual-Channel DDR3 Corsair XMS3
Video - Gainward GeForce GT 440 1GB
Scheda Madre - ASUS M4A87TD EVO
HD - 120 SSD Crucial
HD - 250 SSD Crucial
Avatar utente
bllpla
God of Arcade
God of Arcade
Messaggi: 3100
Iscritto il: 24/07/2005, 19:09
Località: Bellaria (RN)
Contatta:

Re: AutoHotkey Miniguida Base

Messaggio da bllpla »

Kernel ha scritto:
bllpla ha scritto: 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)
Hai provato ad usare autoit al posto di autohotkey?
Avevo provato tempo fa senza risultati :( maximus arcade ha un problema di base con la mappatura della tastiera mai risolto e se si fà un pò di casino con i tasti lui dopo un pò impazzisce :)
Ecco il link al mio sito con le foto del cabinato

http://www.webalice.it/bllpla/ DI NUOVO ON-LINE

MAMEPC NEW
CPU - AMD Athlon II X3 450 3.2GHz
Ram - 4GB Dual-Channel DDR3 Corsair XMS3
Video - Gainward GeForce GT 440 1GB
Scheda Madre - ASUS M4A87TD EVO
HD - 120 SSD Crucial
HD - 250 SSD Crucial
Avatar utente
moket

Gold Medal Silver Medal Bronze Medal Record italiano Donatore Top Seller
Banned
Banned
Messaggi: 4588
Iscritto il: 22/03/2011, 14:57
Medaglie: 25
Città: Roma

Re: AutoHotkey Miniguida Base

Messaggio da moket »

Stò impazzendo con AHK...
Voglio praticamente far premere il pulsante "Q" alla pressione di ESC (esc e dopo q: La clasasica conferma all'uscita) per il gioco Hydorah.
Quindi: Quando Hydorah gira e si preme il tasto ESC autohotkey deve successivamente premere "Q"
Per il gioco Maldita Castilla l'ho fatto ma per Hydorah non ci riesco.
Penso che si possa fare anke uno script generico, cioè, Ogni volta che si preme "esc" AHK ddeve POI spingere "Q". Non dovrebbe creare problemi a niente sul cab, giusto??!!
AIUTATEMI!!!!!
Rispondi

Torna a “Miscellanea software”