Y siguiendo con mi aprendizaje en Autoit esta vez les traigo un código en autoit para que podáis hacer vuestros propios autoruns en los repack con InnoSetup y Freearc que realicéis.
Básicamente el código verifica la instalación de tu repack por lo que yo recomiendo poner vuestras instalaciones la APPID del nombre del juego o programa para hacerlo mucho mas sencillo.
Tomamos como ejemplo “Cities Skilines”, lo 1º ha sido poner en la instalación de mi repack la APPID:
En el script del InnoSetup:
#define AppName "Cities Skilines"
[Setup]
AppID={#AppName}
Con esto creará en el registro al instalar la linea:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cities Skylines_is1
Ahora ya tenemos lo esencial, creamos el formulario en Autoit (recomiendo Koda)
Una vez tengamos el formulario creamos ya el código:
con esto, verificamos que el juego esta instalado:
$Reg=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cities Skylines_is1","InstallLocation")
Si no se ha detectado la línea, los botones Lanzar y desinstalar no se habilitarán.
if @error= 1 then
GUICtrlSetState($Button1, $GUI_DISABLE)
GUICtrlSetState($Button2, $GUI_DISABLE)
EndIf
Con esta variable descubrimos el desinstalador para el botón desinstalar:
$Reg2= RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cities Skylines_is1","UninstallString")
Aquí lanzamos el ejecutable con el botón lanzar:
case $Button1
Run ($Reg & "Cities.exe")
Y con esto lanzamos en desinstalador:
case $Button2
Run ($Reg2)
exit
Este botón verifica que se encuentra el “setup.exe” para instalarlo,si no lo encuentra lanza el mensaje que debes ejecutar la instalación en la unidad o carpeta donde este ubicado el “setup.exe”
case $Button3
if not FileExists ("setup.exe") Then
MsgBox($MB_OK+$MB_ICONERROR, "Error", "Tienes que ejecutar la instalación desde la unidad o carpeta en la que se encuentre el archivo setup.exe")
else
run ("setup.exe")
EndIf
case $Button4
exit
Os pongo ahora el codigo completo para que podair entenderlo mejor y el resultado de como quedaría:
#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <MsgBoxConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 394, 219, 192, 124) GUISetBkColor(0xFFFFFF) $Button1 = GUICtrlCreateButton("Lanzar", 8, 184, 75, 25) $Button2 = GUICtrlCreateButton("Desinstalar", 112, 184, 75, 25) $Button3 = GUICtrlCreateButton("Instalar", 200, 184, 75, 25) $Button4 = GUICtrlCreateButton("Salir", 304, 184, 75, 25) $Pic1 = GUICtrlCreatePic("img.jpg", 8, 8, 372, 164) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### $Reg= RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cities Skylines_is1","InstallLocation") if @error= 1 then GUICtrlSetState($Button1, $GUI_DISABLE) GUICtrlSetState($Button2, $GUI_DISABLE) EndIf $Reg2= RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cities Skylines_is1","UninstallString") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit case $Button1 Run ($Reg & "Cities.exe") case $Button2 Run ($Reg2) exit case $Button3 if not FileExists ("setup.exe") Then MsgBox($MB_OK+$MB_ICONERROR, "Error", "Tienes que ejecutar la instalación desde la unidad o carpeta en la que se encuentre el archivo setup.exe") else run ("setup.exe") EndIf case $Button4 exit EndSwitch WEnd |
Botones activados, detecto el juego instalado:
Botones desactivados, no esta el juego instalado:
0 comentarios :
Publicar un comentario