Programa para instalar otros programas

Antes de ir al Soporte consultame aquí, gracias
Responder
wbueso
Aprendiz de Mago
Mensajes: 61
Registrado: 31 Dic 2013, 01:02

Programa para instalar otros programas

Mensaje por wbueso »

Soy nuevo con esto del AutoIt, pero he dado mis primeros pasos y estoy muy emocionado, lo que estoy tratando de hacer (poniendo en practica los pocos conocimientos que he adquirido) es un programa como el WPI (Windows Post Install) que me permita con un Checkbox elegir el o los programas que instalare y que se instalen uno por uno, la verdad es que estoy muy confundido pues solo he logrado que mi ejecute un programa, si selecciono dos programas se ejecutan los dos al mismo tiempo, solo quiero que alguien me de las bases o una idea de como hacerlo, ya tengo la GUI creada con un boton de instalar, otro de salir y otro de desactivar los checkbox, quisiera agregar programas por default y que esten arreglados por categoria, y que se pueda elegir que programa se instalara primero.
Casi no puedo dormir pensando en eso y se me ocurren algunas ideas pero al llevarlas a la practica no me funcionan.
estoy aprendiendo pero ya puedo crear scripts para instalar programas desatendidos con serial y que se configuren automaticamente.
Doy gracias de antemano por la ayuda o la informacion que me puedan ofrecer (quiero las bases para poder practicar por eso pido que no me den el codigo entero de algun programa como el que les comento)

Este es el codigo que tengo, solo les pongo doy dos botones y dos checkbox para que no sea tan grande el codigo, hasta ahorita no se como funcionan los array.

Código: Seleccionar todo

#include <File.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
GUICreate("Agregar Programas",915,500,50,100)
$BtnVlvr = GUICtrlCreateButton("Volver al Instalador",5,405,110,20)
$BtnAct = GUICtrlCreateButton("Actualizar",5,425,110,20)
$BtnSlr = GUICtrlCreateButton("Salir",5,445,110,20)

GuiSetState(@SW_SHOW)
$BtnAdd0 = GUICtrlCreateButton("Agregar",125,35,45,20)
$BtnAdd1 = GUICtrlCreateButton("Agregar",125,55,45,20)

$ChckBx0 = GUICtrlCreateLabel(FileReadLine(@ScriptDir&"\Programas.txt",1),175,40,140,20)
$ChckBx1 = GUICtrlCreateLabel(FileReadLine(@ScriptDir&"\Programas.txt",4),175,60,140,20)

GUICtrlCreateGroup("Configuraciónes",120,20,190,220)

 Func Actlzr()
	  WinClose("Agregar Programas","")
	  ShellExecute(@ScriptDir&"\Agregar Programas.exe")
   EndFunc

   Func Add0()
		 $FlRut0 = FileOpenDialog("Seleccione un Ejecutable", @DesktopCommonDir, "Ejecutables (*.exe;*.bat;*.com;*.cmd)", 1 + 4 )
		 If $FlRut0 = "" Then
		 MsgBox(0,"Error","Debe seleccionar un Archivo",5)
		 Else
		 $FlName0 = InputBox("Programa Agregado","Usted Selecciono el Siguiente Programa"&$FlRut0&@CRLF&@CRLF&"Escriba el Nombre del Programa")
	  If $FlName0 = "" Then
		 MsgBox(0,"Error","Debe Escribir un Nombre para el Archivo")
		 else
	  	 $Dflt0 = MsgBox(4,"Listo","Desea que el programa se instale por default")
	  If $Dflt0 = 6 Then
		 $Chckd0 = 1
	  Else
		 $Chckd0 = 0
	  EndIf
		 $FlOpn0 = FileOpen("Programas.txt")
		 _FileWriteToLine(@ScriptDir&"\Programas.txt",1,$FlName0,1)
		 _FileWriteToLine(@ScriptDir&"\Programas.txt",2,$FlRut0,1)
		 _FileWriteToLine(@ScriptDir&"\Programas.txt",3,$Chckd0,1)
		 FileClose($FlOpn0)
		 Call("Actlzr")
	  EndIf
	  EndIf
   EndFunc

While 1
   $msg = GUIGetMsg()

   Switch 1

   Case $msg = $BtnAdd0
		 Call("Add0")

   Case $msg = $BtnVlvr
   WinClose("Agregar Programas","")
   ShellExecute(@ScriptDir&"\Agregar Programas.exe")

Case $msg = $BtnAct
      Call("Actlzr")

Case $msg = $BtnSlr
			Exit
	Case $msg = $GUI_EVENT_CLOSE
			Exit
EndSwitch

WEnd
Última edición por wbueso el 31 Ene 2014, 00:13, editado 2 veces en total.
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2086
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: Programa para instalar otros programas

Mensaje por BasicOs »

Hola Feliz Año 2014 y bienvenido,

Sobre:
"Se ejecutan los dos al mismo tiempo, solo quiero que alguien me de las bases o una idea de como hacerlo, "
Puedes hacer un array o variable que después que usuario elija lo que quiere instalar, entonces guarde la lista de ejecuciones por el orden que quieras. Así esta variable (por ejemplo), va organizando el orden de ejecución. Para saber cuando se ha acabado una ejecución puedes usar alguna señal del instalador donde (por ejemplo), esté creado un fichero (if fileexist...) o bien esperar la pantalla final que ponga un título, de Programa instalado correctamente con WinWait() y otras funciones de que exista una ventana.

Además puedes cargar el programa en el inicio si despues de cada instalación se reinicia el pc, que puede ser la señal para la siguiente instalación, (guardando en fichero esta variable FileWriteIni().

Bueno, si quieres puedes ir mostrando lo que haces y lo vemos.
Hay un programa genérico aunque no está actualizado, pero puedes coger todo o partes del código para ejecutar una serie de comandos. Busca AUTOEXECUTE en el foro,

Suerte
Salu22:)
Responder