ninjitsu12
08-28-2011, 08:35 PM
hello people wonder how I add the hyperlaunch.ahk a script that I got from autoit?. JoyToKey because I use to close and give credit for it, and also have the sound of voices and images as you exit the emulator and back to the hyperspin thanks .. I sorry for my poor english
AutoItSetOption("WinTitleMatchMode", 4)
;Move o mouse para o canto direito da tela
Sleep(1000)
MouseMove(800, 0, 0)
Sleep(2000)
;Ocultar Janela do HyperSpin
$Oculta = WinSetState ("HyperSpin", "", @SW_HIDE)
If Not $Oculta then
MsgBox(4096, "ERRO", "Não foi possível achar a janela HyperSpin",10)
Exit(0)
EndIf
;rotina de loop
Global $TEMPO_RESTANTE, $TEMPO_ATUAL, $TEMPO_DECORRIDO, $AVISADO, $lopping
;atualiza de 1 em 1 minuto
$INTERVALO=0
;quando faltar 1 minuto
$AVISADO=False
;verifica quanto tempo tem de ficha
$TEMPO_RESTANTE=VerificaTempo()
;verifica se o advmenu passou o nome da rom
If NOT $CmdLine[0] = 1 Then
SplashImageOn("", "..\auxiliar\image\mensa1.gif", 220, 40, -1, -1, 1)
SoundPlay("..\auxiliar\som\advfaltajogo.wav",1)
SplashOff()
Exit ( 0 )
EndIf
;verifica se a rom passada pela macro "%p" existe.
If Not FileExists($CmdLine[1]) Then
MsgBox(0,"Erro", "O jogo " & $CmdLine[1] & ", passado pelo advmenu não foi localizado", 15)
Exit(0)
EndIf
;abre o joytokey
$drive=StringLeft(@ScriptDir,2)
If Not ProcessExists("joytokey.exe") Then
$exe_joy = ShellExecute("joytokey.exe", "snes", $drive & "\arcade\joytokey")
if @error Then
SplashImageOn("", "..\auxiliar\image\mensa4.gif", 220, 40, -1, -1, 1)
Sleep(10000)
SplashOff()
FECHAR()
Exit(0)
EndIf
Else
EndIf
Sleep(2000)
BlockInput (1)
Sleep (2000)
;chama o emulador, o -m= não mostrar a interface gráfica, -j=desabilitar o mouse
$exe_mame = ShellExecute("zsnesw.exe", "-m -j " & $CmdLine[1], @ScriptDir,"open",@SW_SHOWNORMAL)
If @error Then
SplashImageOn("", "..\auxiliar\image\mensa5.gif", 220, 40, -1, -1, 1)
SoundPlay("..\auxiliar\som\erroemuexe.wav")
SplashOff()
Exit(0)
EndIf
WinWaitActive("classname=zsnesw", "",3)
sleep(100)
BlockInput (0)
HotKeySet("k", "PegaFicha") ;intala o hotkey, usando a tecla "K" , ficha
sleep(100)
HotKeySet("j", "Fechar") ;intala o hotkey, para capturar a tecla "P", saida
$lopping=1
$TEMPO_ATUAL=DllCall("kernel32.dll", "int", "GetTickCount")
While $lopping
;atualiza o tempo jogado
$TEMPO_DECORRIDO=DllCall("kernel32.dll", "int", "GetTickCount")
;fecha o emulador quando o tempo da ficha for atingido
If $TEMPO_RESTANTE <= ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]) Then
$TEMPO_RESTANTE=0
FECHAR()
ExitLoop
EndIf
;atualiza os contadores a cada 1 minuto (600 * 100)
If $INTERVALO >=600 Then
GravaTempo()
$INTERVALO=0
EndIf
;avisa quando faltar somente 1 minuto
If (( $TEMPO_RESTANTE - ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]) ) <= 60000 ) And ( Not $AVISADO ) Then
SoundPlay("..\auxiliar\som\falta1.wav")
$AVISADO = True
EndIf
$INTERVALO +=1
sleep(100)
WEnd
Sleep (2000)
;;Restaura a Janela do HyperSpin
$Restaura = WinSetState ("HyperSpin", "", @SW_SHOW)
If Not $Restaura then
MsgBox(4096, "ERRO", "Não foi possível achar a janela HyperSpin",10)
Else
WinActivate ( "HyperSpin", "")
EndIf
Exit(0)
;função que irá verificar o estado do emulador e fecha-lo caso necessario
Func FECHAR()
Local $emulador, $fechou
;remove os hotkeys
HotKeySet("k")
HotKeySet("j")
;envia um ESC para o emulador
if Not WinActive("classname=ZSNESWIN") Then
WinActivate ("classname=ZSNESWIN")
EndIf
Sleep(100)
Send("{ESC DOWN}")
Sleep(100)
Send("{ESC UP}")
;mostra a menssagem
MouseMove(800, 0, 0)
;mostra a mensagem
SplashImageOn("", "..\auxiliar\image\mensa6.gif", 220, 40, -1, -1, 1)
SoundPlay("..\auxiliar\som\fechaemu.wav", 1)
$FECHOU = WinWaitClose("classname=ZSNESWIN", "", 5)
If Not $FECHOU Then
ProcessClose("zsnesw.exe")
EndIf
;atualiza o banco de dados
GravaTempo()
$lopping=0
EndFunc
;função responssavel por armazenar as fichas
Func PegaFicha()
Local $atual, $valor, $contador, $calcula, $adiciona
;lê os dados atuais
$atual = $TEMPO_RESTANTE
$contador=IniRead("..\advmenu.ini","FICHEIRO","CONTADOR","0")
$valor = IniRead("..\advmenu.ini","CONFIGURACAO","TEMPOPORFICHA", "600000")
$calcula = ($atual + Number($valor))
$adiciona = (Number($contador) + 1)
;grava os novos valores
IniWrite("..\advmenu.ini","FICHEIRO","FICHAS",String($calcula))
IniWrite("..\advmenu.ini","FICHEIRO","CONTADOR",String($adiciona))
SoundPlay("..\auxiliar\som\coin.wav")
$TEMPO_RESTANTE = $calcula
$TEMPO_ATUAL = DllCall("kernel32.dll", "int", "GetTickCount")
$AVISADO = False
EndFunc
;função responssavel por verificar o tempo pela primeira vez
Func VerificaTempo()
Local $atual, $valor, $calcula
;lê os dados atuais
$atual=IniRead("..\advmenu.ini","FICHEIRO","FICHAS","0")
$valor=IniRead("..\advmenu.ini","CONFIGURACAO","TEMPOPORFICHA","600000")
;atualiza a quantidade de fichas
$calcula=Number($atual)
If $calcula <= 30000 Then
$calcula=30000 ;caso não tenha ficha dá 30 segundos para ver o jogo
$AVISADO=True
SoundPlay("..\auxiliar\som\falta30.wav", 1)
EndIf
Return $calcula
EndFunc
;função para atualiza o banco de dados
Func GravaTempo()
Local $calcula
$calcula=($TEMPO_RESTANTE - ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]))
If $calcula < 0 Then
IniWrite("..\advmenu.ini","FICHEIRO","FICHAS","0")
Else
IniWrite("..\advmenu.ini","FICHEIRO","FICHAS",String($calcula))
EndIf
EndFunc
AutoItSetOption("WinTitleMatchMode", 4)
;Move o mouse para o canto direito da tela
Sleep(1000)
MouseMove(800, 0, 0)
Sleep(2000)
;Ocultar Janela do HyperSpin
$Oculta = WinSetState ("HyperSpin", "", @SW_HIDE)
If Not $Oculta then
MsgBox(4096, "ERRO", "Não foi possível achar a janela HyperSpin",10)
Exit(0)
EndIf
;rotina de loop
Global $TEMPO_RESTANTE, $TEMPO_ATUAL, $TEMPO_DECORRIDO, $AVISADO, $lopping
;atualiza de 1 em 1 minuto
$INTERVALO=0
;quando faltar 1 minuto
$AVISADO=False
;verifica quanto tempo tem de ficha
$TEMPO_RESTANTE=VerificaTempo()
;verifica se o advmenu passou o nome da rom
If NOT $CmdLine[0] = 1 Then
SplashImageOn("", "..\auxiliar\image\mensa1.gif", 220, 40, -1, -1, 1)
SoundPlay("..\auxiliar\som\advfaltajogo.wav",1)
SplashOff()
Exit ( 0 )
EndIf
;verifica se a rom passada pela macro "%p" existe.
If Not FileExists($CmdLine[1]) Then
MsgBox(0,"Erro", "O jogo " & $CmdLine[1] & ", passado pelo advmenu não foi localizado", 15)
Exit(0)
EndIf
;abre o joytokey
$drive=StringLeft(@ScriptDir,2)
If Not ProcessExists("joytokey.exe") Then
$exe_joy = ShellExecute("joytokey.exe", "snes", $drive & "\arcade\joytokey")
if @error Then
SplashImageOn("", "..\auxiliar\image\mensa4.gif", 220, 40, -1, -1, 1)
Sleep(10000)
SplashOff()
FECHAR()
Exit(0)
EndIf
Else
EndIf
Sleep(2000)
BlockInput (1)
Sleep (2000)
;chama o emulador, o -m= não mostrar a interface gráfica, -j=desabilitar o mouse
$exe_mame = ShellExecute("zsnesw.exe", "-m -j " & $CmdLine[1], @ScriptDir,"open",@SW_SHOWNORMAL)
If @error Then
SplashImageOn("", "..\auxiliar\image\mensa5.gif", 220, 40, -1, -1, 1)
SoundPlay("..\auxiliar\som\erroemuexe.wav")
SplashOff()
Exit(0)
EndIf
WinWaitActive("classname=zsnesw", "",3)
sleep(100)
BlockInput (0)
HotKeySet("k", "PegaFicha") ;intala o hotkey, usando a tecla "K" , ficha
sleep(100)
HotKeySet("j", "Fechar") ;intala o hotkey, para capturar a tecla "P", saida
$lopping=1
$TEMPO_ATUAL=DllCall("kernel32.dll", "int", "GetTickCount")
While $lopping
;atualiza o tempo jogado
$TEMPO_DECORRIDO=DllCall("kernel32.dll", "int", "GetTickCount")
;fecha o emulador quando o tempo da ficha for atingido
If $TEMPO_RESTANTE <= ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]) Then
$TEMPO_RESTANTE=0
FECHAR()
ExitLoop
EndIf
;atualiza os contadores a cada 1 minuto (600 * 100)
If $INTERVALO >=600 Then
GravaTempo()
$INTERVALO=0
EndIf
;avisa quando faltar somente 1 minuto
If (( $TEMPO_RESTANTE - ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]) ) <= 60000 ) And ( Not $AVISADO ) Then
SoundPlay("..\auxiliar\som\falta1.wav")
$AVISADO = True
EndIf
$INTERVALO +=1
sleep(100)
WEnd
Sleep (2000)
;;Restaura a Janela do HyperSpin
$Restaura = WinSetState ("HyperSpin", "", @SW_SHOW)
If Not $Restaura then
MsgBox(4096, "ERRO", "Não foi possível achar a janela HyperSpin",10)
Else
WinActivate ( "HyperSpin", "")
EndIf
Exit(0)
;função que irá verificar o estado do emulador e fecha-lo caso necessario
Func FECHAR()
Local $emulador, $fechou
;remove os hotkeys
HotKeySet("k")
HotKeySet("j")
;envia um ESC para o emulador
if Not WinActive("classname=ZSNESWIN") Then
WinActivate ("classname=ZSNESWIN")
EndIf
Sleep(100)
Send("{ESC DOWN}")
Sleep(100)
Send("{ESC UP}")
;mostra a menssagem
MouseMove(800, 0, 0)
;mostra a mensagem
SplashImageOn("", "..\auxiliar\image\mensa6.gif", 220, 40, -1, -1, 1)
SoundPlay("..\auxiliar\som\fechaemu.wav", 1)
$FECHOU = WinWaitClose("classname=ZSNESWIN", "", 5)
If Not $FECHOU Then
ProcessClose("zsnesw.exe")
EndIf
;atualiza o banco de dados
GravaTempo()
$lopping=0
EndFunc
;função responssavel por armazenar as fichas
Func PegaFicha()
Local $atual, $valor, $contador, $calcula, $adiciona
;lê os dados atuais
$atual = $TEMPO_RESTANTE
$contador=IniRead("..\advmenu.ini","FICHEIRO","CONTADOR","0")
$valor = IniRead("..\advmenu.ini","CONFIGURACAO","TEMPOPORFICHA", "600000")
$calcula = ($atual + Number($valor))
$adiciona = (Number($contador) + 1)
;grava os novos valores
IniWrite("..\advmenu.ini","FICHEIRO","FICHAS",String($calcula))
IniWrite("..\advmenu.ini","FICHEIRO","CONTADOR",String($adiciona))
SoundPlay("..\auxiliar\som\coin.wav")
$TEMPO_RESTANTE = $calcula
$TEMPO_ATUAL = DllCall("kernel32.dll", "int", "GetTickCount")
$AVISADO = False
EndFunc
;função responssavel por verificar o tempo pela primeira vez
Func VerificaTempo()
Local $atual, $valor, $calcula
;lê os dados atuais
$atual=IniRead("..\advmenu.ini","FICHEIRO","FICHAS","0")
$valor=IniRead("..\advmenu.ini","CONFIGURACAO","TEMPOPORFICHA","600000")
;atualiza a quantidade de fichas
$calcula=Number($atual)
If $calcula <= 30000 Then
$calcula=30000 ;caso não tenha ficha dá 30 segundos para ver o jogo
$AVISADO=True
SoundPlay("..\auxiliar\som\falta30.wav", 1)
EndIf
Return $calcula
EndFunc
;função para atualiza o banco de dados
Func GravaTempo()
Local $calcula
$calcula=($TEMPO_RESTANTE - ($TEMPO_DECORRIDO[0] - $TEMPO_ATUAL[0]))
If $calcula < 0 Then
IniWrite("..\advmenu.ini","FICHEIRO","FICHAS","0")
Else
IniWrite("..\advmenu.ini","FICHEIRO","FICHAS",String($calcula))
EndIf
EndFunc