2011-10-17 6 views
6

Devo chiamare uno script AutoHotkey che restituisca un valore.Come si restituisce un valore da uno script AutoHotkey?

Per esempio, qualcosa di simile:

return_val = Shell("AutoHotKey.exe script.ahk") 

Il mio script simile a questa:

IfExists, filename 
    return 1 
Else 
    return 0 

ottengo un errore che mi dice che non posso avere un valore nell'istruzione ritorno di terminazione. Ho anche provato a utilizzare l'istruzione Exit anziché il ritorno.

Come posso restituire un valore da uno script AutoHotkey?

risposta

6

Per restituire un codice di uscita, è necessario chiamare il numero ExitApp insieme al codice desiderato. Utilizzare IfExist per determinare se il file esiste. Ciò significa lo script che si chiama dovrebbe essere simile a questo:

IfExist, c:\test.txt 
    ExitApp, 1 
Else 
    ExitApp 0 

Quando si chiama lo script che si dovrebbe usare RunWait e passarlo il parametro UseErrorLevel. Questo imposterà la variabile ErrorLevel al codice di uscita del processo chiamato se si avvia correttamente o il testo ERROR se il processo non può essere avviato.

RunWait, C:\Program Files (x86)\AutoHotkey\AutoHotkey.exe "C:\script.ahk",, UseErrorLevel 
MsgBox %ErrorLevel% 

In questo esempio la finestra di messaggio visualizzerà '1' se il file esiste o '0' se non lo fa.