oirentacion menu para desatendidos

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
vladhampir
Mensajes: 19
Registrado: 02 Dic 2010, 07:32

oirentacion menu para desatendidos

Mensaje por vladhampir »

hola que tal
tengo la idea de hacerme un menu para algunos desatendidos pongo aqui un codigo que de a entender mas o menos lo que quiero
por que no se explicarme muy bien

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 625, 443, 192, 124)
$Antivirus = GUICtrlCreateCombo("antivirus", 16, 8, 145, 25)
GUICtrlSetData(-1, "kaspersy|nod32 2.7|nod32 v4|norton")
$Button1 = GUICtrlCreateButton("instalar", 320, 80, 75, 25, $WS_GROUP)
$ofimatica = GUICtrlCreateCombo("ofimatica", 16, 56, 145, 25)
GUICtrlSetData(-1, "office 2010|office 2007|office 2003|adobe reader")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
case $Button1

$leer = GUICtrlRead($Antivirus)
IniWrite("Instalacion.ini", "antivirus", "", $leer)

$leer = GUICtrlRead($ofimatica)
IniWrite("Instalacion.ini", "ofimatica", "", $leer)

Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd

en teoria lo que quiero es que los botones sean desplegables algo asi GUICtrlCreateCombo pero creo este es para texto y que de algun boton lea el que esta seleccionado y solo instale ese si me pudieran orientar un poco se que hay programas como el wpi etc pero son por checkbox y si puedo hacer uno creo que puedo aprender mas que si solo descargo uno hecho,la idea de este menu seria para que corra en un hd con todos los programas que tengo en el para correr los programas no tengo ningun problema para ejecutarlo desde cualquier pc

de antemano muchas gracias agradezco a quien pueda orientarme

repito el codigo solo es para que se den una idea de lo que me gustaria este graba en 1 archivo ini lo que se selecciona
y de nuevo gracias
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: oirentacion menu para desatendidos

Mensaje por Ximorro »

No entiendo lo que quieres decir. ¿Un botón desplegable?
Usa los dos a la vez, la selección la haces en el combo, y el botón, que es normal, instala lo que se ha seleccionado en el combo, no tiene que seleccionarse en el propio botón.

En el gestor del evento del botón lees el texto seleccionado en el combo con GUICtrlRead y según lo que leas ejecutas una cosa u otra.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
vladhampir
Mensajes: 19
Registrado: 02 Dic 2010, 07:32

Re: oirentacion menu para desatendidos

Mensaje por vladhampir »

tal vez no me explique bien que es lo que quiero

bueno
primero que nada gracias
lo que quiero es un combobox que contenga ciertos datos por ejemplo
tengo varios antivirus uno seria el nod y otro el kaspersky
y tengo varias cosas extras por decir office 2010 y 2007

entonces quiero tener dos combo box uno que sea para antivirus y otro para ofimatica
y que se deplieguen para seleccionar nod y office 2007 ya una vez leidos desde un boton "X" me lea lo que dicen los combox box para instalarlos
la custion es que para ejecutar RUN debo tener los exe creados ya desatendidos y darles la direccion la custion es como meterlos en 1 menu para hacer instalacion desatendida

espero haberme explicado de antemano muchas gracias
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Mensaje por BasicOs »

Para empezar con una versión inicial beta d tu programa:
Puedes hacerlo con botones grandes que graben en un ini las activaciones d las opciones. Y luego un botón "proceder con la instalación " y q ejecute lo q este dentro del ini.
Los botones son los recursos mas amigables que hay para el usuario.
TAMBIEN puedes hacer checkboxs.
Con el Koda del Editor Scite puedes hacerlo en segundos.
Salu22:)
vladhampir
Mensajes: 19
Registrado: 02 Dic 2010, 07:32

Re:

Mensaje por vladhampir »

bueno pues mas o menos la idea es esto

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 156, 443, 420, 152)
$ANTIVIRUS = GUICtrlCreateCombo("ANTIVIRUS", 0, 8, 145, 25)
GUICtrlSetData(-1, "KIS 2010|KIS 2011|NOD 32 V2.7|NOD 32 V4.O")
$CODECS = GUICtrlCreateCombo("CODECS", 0, 40, 145, 25)
GUICtrlSetData(-1, "K-LITE 670 FULL|VLC 1.1.0|REAL PLAYER|FFDSHOW")
$VIDEO = GUICtrlCreateCombo("VIDEO", 0, 72, 145, 25)
GUICtrlSetData(-1, "POWE DVD 10|DVD SHRINK 3.2|CONVERTTODVD|SONY VEGAS|TE4XP|TMPEGEnc")
$COMPRESORES = GUICtrlCreateCombo("COMPRESORES", 0, 104, 145, 25)
GUICtrlSetData(-1, "WINZIP|7ZIP|WINRAR 3.90|WINRAR 3.93")
$EDITORES = GUICtrlCreateCombo("EDITORES", 0, 136, 145, 25)
GUICtrlSetData(-1, "SUITE ADOBE FULL|AUTOCAD|CD 12|CD X3|CD X4|CD X5|PHOTOSHOP CS3|PHOTOSHOP CS4|PHOTOSHOP CS5|FLASH 8")
$MEDICINAS = GUICtrlCreateCombo("MEDICINAS", 0, 168, 145, 25)
GUICtrlSetData(-1, "ACTIVAR OFFICE|KASPERSKY|CD X3|CD X|TRIAL RESET KIS 2010|OFFICE 2007|ACTIVAR XP|LOADER 7")
$NAVEGADORES = GUICtrlCreateCombo("NAVEGADORES", 0, 200, 145, 25)
GUICtrlSetData(-1, "IE|FIREFOX|CHROME")
$OFIMATICA = GUICtrlCreateCombo("OFIMATICA", 0, 232, 145, 25)
GUICtrlSetData(-1, "OFFICE 2003|OFFICE 2007|OFFICE 2010")
$PDF = GUICtrlCreateCombo("PDF", 0, 264, 145, 25)
GUICtrlSetData(-1, "ADOBE READER|ADOBE ACROBAT")
$QUEMADORES = GUICtrlCreateCombo("QUEMADORES", 0, 296, 145, 25)
GUICtrlSetData(-1, "NERO 7|NERO 10|ALCOHOL|ASHAMPOO BURNING")
$INSTALAR = GUICtrlCreateButton("INSTALAR", 16, 360, 115, 41, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
case $INSTALAR

$leer = GUICtrlRead($ANTIVIRUS)
IniWrite("Instalacion.ini", "ANTIVIRUS", "", $leer)

$leer = GUICtrlRead($OFIMATICA)
IniWrite("Instalacion.ini", "OFIMATICA", "", $leer)

$leer = GUICtrlRead($CODECS)
IniWrite("Instalacion.ini", "CODECS", "", $leer)

$leer = GUICtrlRead($VIDEO)
IniWrite("Instalacion.ini", "VIDEO", "", $leer)

$leer = GUICtrlRead($COMPRESORES)
IniWrite("Instalacion.ini", "COMPRESORES", "", $leer)

$leer = GUICtrlRead($EDITORES)
IniWrite("Instalacion.ini", "EDITORES", "", $leer)

$leer = GUICtrlRead($MEDICINAS)
IniWrite("Instalacion.ini", "MEDICINAS", "", $leer)

$leer = GUICtrlRead($NAVEGADORES)
IniWrite("Instalacion.ini", "NAVEGADORES", "", $leer)

$leer = GUICtrlRead($PDF)
IniWrite("Instalacion.ini", "PDF", "", $leer)

$leer = GUICtrlRead($QUEMADORES)
IniWrite("Instalacion.ini", "QUEMADORES", "", $leer)

Case $GUI_EVENT_CLOSE
Exit

EndSwitch
WEnd

como los tengo en 1 disco duro para ejecutar RUN seria algo asi
Run(@ScriptDir & "\programas\CODECS\K-Lite_Codec_Pack_670_Full.exe")

el detalle esta en que no se como hacer que el boton lea lo que hay y ejecute los programas
de antemano muchas gracias
Avatar de Usuario
XPyro
Profesional del Autoit
Mensajes: 542
Registrado: 04 Mar 2007, 10:12
Ubicación: México
Contactar:

Re: oirentacion menu para desatendidos

Mensaje por XPyro »

Quieres hacer un tipo WPI para crear un menú con instalaciones desatendidas :smt045

Mira te muestro un código que hice hace un poquito de tiempo atrás donde e creado un tipo menú para instalar varias aplicaciones desatendidas:

Código: Seleccionar todo

#NoTrayIcon
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiListView.au3>
#Include <Misc.au3>

_Singleton("Instalacionesdesatendidas")

$Form1 = GUICreate("Xinstall 1.0", 625, 439, -1, -1, BitOR($WS_CAPTION,$WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS))
GUISetBkColor(0xA6CAF0)
$Lista = _GUICtrlListView_Create($Form1, "", 8, 8, 609, 353)
_GUICtrlListView_SetExtendedListViewStyle($lista, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_CHECKBOXES))
_GUICtrlListView_AddColumn ($lista, "Lista de Programas desatendidos a instalar", 590)
$Progress1 = GUICtrlCreateProgress(8, 368, 609, 9)
$Button1 = GUICtrlCreateButton("Comenzar Instalación", 231, 395, 163, 33, $WS_GROUP)
GUISetState(@SW_SHOW)

;Grupos
_GUICtrlListView_EnableGroupView($lista)
$ini = 1
Do
	$inir = IniRead("Apps.ini", "Grupos", $ini, "error")
	If $inir <> "error" Then _GUICtrlListView_InsertGroup($lista, -1, $ini, $inir)
	$ini = $ini + 1
Until $inir = "error"

;Programas
$NumPro = IniReadSectionNames("Apps.ini")
For $I = 0 To $NumPro[0]
	_GUICtrlListView_AddItem($lista, IniRead("Apps.ini", $I, "Programa", ""), $I)
	_GUICtrlListView_SetItemGroupID($lista, $I, IniRead("Apps.ini", $I, "Grupo", ""))
	If IniRead("Apps.ini", $I, "Seleccionado", "") = "1" Then
		$Check = TRUE
	Else
		$Check = False
	EndIf
	_GUICtrlListView_SetItemChecked($Lista, $I, $Check)
Next


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
Este es el archivo de configuración ini, guárdalo en la misma carpeta del Script

Código: Seleccionar todo

[Carpeta]
Dir=\apps

[Grupos]
1=CD&DVD:
2=Imagen y diseño:
3=Internet:
4=Mantenimiento:
5=Multimedia:
6=Office:
7=Seguridad:
8=Utilidades:

[0]
Programa=Ashampoo Burning Studio 6 FREE
Grupo=1
Ejecutar=ashampoo_burning_studio_6_free.exe
Parametros=/S
Icono=
Seleccionado=1

[1]
Programa=Gimp 2.7.1
Grupo=2
Ejecutar=gimp-2.7.1-setup.exe
Parametros=/S
Icono=
Seleccionado=0

[2]
Programa=Fireworks CS3
Grupo=2
Ejecutar=SetupFireworksCS3.exe
Parametros=/S
Icono=
Seleccionado=0

[3]
Programa=Flash Player 10.2.152.26 (IE)
Grupo=3
Ejecutar=Flash Player 10.2.152.26(IE).exe
Parametros=/S
Icono=
Seleccionado=1

[4]
Programa=Flash Player 10.2.152.26 (Non-IE)
Grupo=3
Ejecutar=Flash Player 10.2.152.26(Non-IE).exe
Parametros=/S
Icono=
Seleccionado=1

[5]
Programa=Shockwave Player 11.5.9.620
Grupo=3
Ejecutar=Shockwave Player 11.5.9.620.exe
Parametros=/S
Icono=
Seleccionado=1

[6]
Programa=Silverlight 4.0.51204
Grupo=3
Ejecutar=Silverlight 4.0.51204.exe
Parametros=/S
Icono=
Seleccionado=1

[7]
Programa=Java RE 6 Update 23
Grupo=3
Ejecutar=jre-6u23-windows-i586.exe
Parametros=/S
Icono=
Seleccionado=1

[8]
Programa=Firefox 3.6.13
Grupo=3
Ejecutar=Firefox-Setup-3.6.13.exe
Parametros=-ms
Icono=
Seleccionado=1

[9]
Programa=CCleaner 3.03
Grupo=4
Ejecutar=ccsetup303_slim.exe
Parametros=/S
Icono=
Seleccionado=1

[10]
Programa=K-Lite Codec Pack 6.90 Mega
Grupo=5
Ejecutar=K-Lite_Codec_Pack_690_Mega.exe
Parametros=/S
Icono=
Seleccionado=1

[11]
Programa=Libre Office 3.3.0
Grupo=6
Ejecutar=LibO_3.3.0_Win_x86_install_multi.exe
Parametros=/S
Icono=
Seleccionado=1

[12]
Programa=Foxit Reader 4.31
Grupo=6
Ejecutar=FoxitReader431.exe
Parametros=/S
Icono=
Seleccionado=0

[13]
Programa=7 Zip 9.20
Grupo=8
Ejecutar=7z920.exe
Parametros=/S
Icono=
Seleccionado=1

[14]
Programa=VirtualBox 4.0.2 69518
Grupo=8
Ejecutar=VirtualBox-4.0.2-69518-Win.exe
Parametros=/S
Icono=
Seleccionado=0
Es muy fácil de configurar el archivo ini, todavía le falta ejecutar los programas pero lo puedes hacer con ShellExecute() para mejor comodidad, espero y te sirva de algo :smt006
Imagen
Andres_sc
Aprendiz de Mago
Mensajes: 59
Registrado: 16 Jul 2010, 23:54

Re: oirentacion menu para desatendidos

Mensaje por Andres_sc »

Hola Te dejo esta opcion Capas te puede servir igual para crear varios en uno solo :smt003

Código: Seleccionar todo

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>


$GUI_principal = GUICreate("Desatendidos", 400,240, -1,100)

$btnProg1 = GUICtrlCreateButton("Programa 1", 20, 120, 105, 33 ,$WS_GROUP)

$btnProg2 = GUICtrlCreateButton("Programa 2", 150, 120, 105, 33, $WS_GROUP)

$btnProg3 = GUICtrlCreateButton("Programa 3", 280, 120, 105, 33, $WS_GROUP)

GUICtrlCreateLabel(" By: Andres_sc ", 280,220 ,250,30)

GUISetState(@SW_SHOW)

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $btnProg1
         GUISetState(@SW_HIDE)
         _ArrancaPrograma1()
      Case $btnProg2
         GUISetState(@SW_HIDE)
         _ArrancaPrograma2()
      Case $btnProg3
         GUISetState(@SW_HIDE)
         _ArrancaPrograma3()
 EndSwitch

WEnd

Func _ArrancaPrograma1()
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
   $GUI_programa1 = GUICreate(" Programa 1 ", 300,150)

   $btnEmpezar = GUICtrlCreateButton("Empezar", 30, 90 , 100,30, $WS_GROUP)

   $btnCerrar = GUICtrlCreateButton("Cerrar", 180,90, 100,30, $WS_GROUP)

   GUISetState(@SW_SHOW)
   While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
		case $btnEmpezar
			MsgBox(0,"instalando..","Programa 1")
		Case $GUI_EVENT_CLOSE
         ExitLoop
      EndSwitch
     Switch $nMsg
         Case $GUI_EVENT_CLOSE, $btnCerrar
            GUIDelete($GUI_programa1)
            GUISetState(@SW_SHOW, $GUI_principal)
            Return
      EndSwitch
  WEnd

EndFunc

Func _ArrancaPrograma2()
   $GUI_programa2 = GUICreate(" Programa2", 300,150)

   $btnEmpezar = GUICtrlCreateButton("Empezar", 30, 90 , 100,30, $WS_GROUP)

   $btnCerrar = GUICtrlCreateButton("Cerrar", 180,90, 100,30, $WS_GROUP)

   GUISetState(@SW_SHOW)
   While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
		case $btnEmpezar
			MsgBox(0,"instalando..","Programa 2")
		Case $GUI_EVENT_CLOSE
         ExitLoop
      EndSwitch
     Switch $nMsg
         Case $GUI_EVENT_CLOSE, $btnCerrar
            GUIDelete($GUI_programa2)
            GUISetState(@SW_SHOW, $GUI_principal)
            Return
      EndSwitch
  WEnd

EndFunc

Func _ArrancaPrograma3()
   $GUI_programa3 = GUICreate(" Programa3 ", 300,150)

   $btnEmpezar = GUICtrlCreateButton("Empezar", 30, 90 , 100,30, $WS_GROUP)

   $btnCerrar = GUICtrlCreateButton("Cerrar", 180,90, 100,30, $WS_GROUP)

   GUISetState(@SW_SHOW)
   While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
		case $btnEmpezar
			MsgBox(0,"instalando..","Programa 3")
		Case $GUI_EVENT_CLOSE
         ExitLoop
      EndSwitch
     Switch $nMsg
         Case $GUI_EVENT_CLOSE, $btnCerrar
            GUIDelete($GUI_programa3)
            GUISetState(@SW_SHOW, $GUI_principal)
            Return
      EndSwitch
  WEnd

EndFunc
Provalo es bastante simple y creo que te puede servir para crear varios gui en uno solo..
Saludos!!

pd: Eso me lo enseño mi amigo Ximorro Imagen
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: oirentacion menu para desatendidos

Mensaje por Ximorro »

Gracias por los créditos, andres_sc. Para eso estamos, para echar una mano.
Una cosa, se te han escapado otra vez los #include en la función _ArrancaPrograma1, los include sólo deben estar una vez, al inicio del programa. Supongo que ha sido cosa de los copy-paste ;-)
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Andres_sc
Aprendiz de Mago
Mensajes: 59
Registrado: 16 Jul 2010, 23:54

Re: oirentacion menu para desatendidos

Mensaje por Andres_sc »

Una cosa, se te han escapado otra vez los #include
Tenes razon :smt003 no me di cuenta pero igual lo probe asi y no sale ningun error,
pero se que esta demas :smt005
Gracias por la correccion ..
Saludos :smt006
dekra
Mensajes: 4
Registrado: 04 Feb 2009, 23:04

Re: oirentacion menu para desatendidos

Mensaje por dekra »

Hola, me ha gustado el modo de instalar programas, pero como podria hacer para que los instale, me refiero a como añado lo que dice XPyro "todavía le falta ejecutar los programas pero lo puedes hacer con ShellExecute() " soy novato en esto y no soy capaz a que funcione, Saludos y gracias
vladhampir
Mensajes: 19
Registrado: 02 Dic 2010, 07:32

Re: oirentacion menu para desatendidos

Mensaje por vladhampir »

Que tal muchas gracias he probado las dos opciones que me dicen muy buenas pero en realidad tenia en mente por medio de inputs supongo que no se puede jejeje
ya habia probado los wpi el detalle esta en que lo que quiero es hacer un hdd con todos los programas ya desatendidos y solo seleccionar determinado numero de programas y que se instalen solos de antemano muchas gracias por su tiempo asi como ruego un poco de paciencia realmente soy muy nuevo
Responder