Problema ejecucion desde Menu Contextual y CMD

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Problema ejecucion desde Menu Contextual y CMD

Mensaje por yasmany »

Un buen día a todos, en un 99% la aplicación que estoy creando esta terminada.
Resulta que al ejecutar del menú contextual o hacerlo manualmente desde el CMD me sale un error, pero si lo ejecuto directo con 2 clic funciona sin error alguno.
A continuación indico los resultados de la ejecución.
Espero se pueda solucionar.
Imagen

En esta ubicación de registro he agregado para el menu contextual de unidades.
Imagen

:smt017 ¿Como puedo hacer para que el ítem agregado en el menuContextual me aparezca solo cuando hago clic derecho en las unidades extraíbles/removibles/Flash Memory?
Por el momento me aparece en cualquier unidad

:smt017 ¿Que códigos deben de ir en el ejecutable o como puedo obtener la dirección de la unidad en la que hice clic derecho para que la aplicación la analice?

Cabe mencionar que se agregará en el registro para que se inicie con el sistema.
He puesto el ejecutable desde el SYSTEM32 pero es el mismo problema desde cualquier ubicación al ejecutar de forma externa y no directa.
Espero de vuestra ayuda, desde ya muy agradecido.

:smt024 Continuo en el intento...
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por Dany »

Seguro que estas usando bien el parametro ($CmdLine)

Creo que no se puede solo para las Flashdrive. pero lo que puedes hacer es verificar si es flashdrive a la hora de la ejecución.

Saludos
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por yasmany »

Pero dentro del código no ingreso ningún $CmdLine y lo que ejecuto manualmente dentro de la consola del sistema es START.
¿Como puedo obviar ese error?
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por Dany »

Lo unico que quieres es que se ejecute tu aplicación?
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por Dany »

Si quieres que se ejecute tu aplicación al darle al contextmenu solo tienes que escribir las claves:

Código: Seleccionar todo

Local Const $AppName="Nombre tu APP"
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName) ;La clave Padre del programa
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName & "\command", "", "REG_SZ", @ScriptFullPath) ;la Clave ruta de tu app

Eso basta. al darle al contextmenu correrá la aplicación.


Yo me refería a hacer algo como esto:

Código: Seleccionar todo

#include <MsgBoxConstants.au3>

Local Const $AppName="Test Dany"

Local $sValue = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName & "\command","");verificamos si exisitimos

if $sValue="" Then
	MsgBox(0,"","Se escribiran las Claves Correspondientes Para USB Menu Prueba")
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName) ;La clave Padre del programa
RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName & "\command", "", "REG_SZ", @ScriptFullPath & " %1") ;la Clave para el Commando
MsgBox(0,"","Listo Para usar desde Context Menu")
Run('explorer.exe ::{20d04fe0-3aea-1069-a2d8-08002b30309d}',"",@SW_MAXIMIZE)
Else
   MsgBox(0,"","Las Claves Ya Existen :)" & @CRLF & "Ya Puedes usar El Context Menu")
EndIf

if $CmdLine[0] > 0 Then
	MsgBox(0,"Drive letra",$CmdLine[1])
	;Aqui comparas si es un flash drive removable
EndIf

Saludos
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por yasmany »

Excelente ayuda!, pero sucede que el error no se quita al llamar desde el menu.
ImagenExcelente ayuda!, pero sucede que el error no se quita al llamar desde el menu.Excelente ayuda!, pero sucede que el error no se quita al llamar desde el menu.
Disculpa las molestias.
mediante el cmd ya que si pongo "start" me sale el ERROR al igual cuando se hace el llamado desde el menu contextual.
¿Como se quitaría ese error? ando probando de diferentes formas desde varias maneras de compilar y en una version anterior de autoit ya que la que tengo solo es la 3.3.8.1
Si le doy dos clics directamente en la aplicacion funciona de maravilla. pero mi intencion es evitar ese error al ejecutarse cuando se inicie el sistema ya que lo voy agregar al registro.
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por Dany »

No es necesario agregar start. solo abre cmd. arrastra tu aplicación al cmd y dale enter. y debería arrancar normal.

saludos
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por yasmany »

El problema está que sale error al ejecutar desde el menú contextual.
Bueno voy a ver si realizo una pequeña aplicación que se encargue solo de ejecutar el software.
Gracias por tu tiempo, muy agradecido. :smt024
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por Dany »

Proba el segundo ejemplo que te coloque.

saludos
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por yasmany »

Lo que respecta al menú contextual funciona muy bien, sucede que al llamar a la aplicacion desde el menu sale error es decir lo llama y se ejecuta el programa pero el problema esta que windows detecta enseguida que hay un error dentro del programa seria bueno que revises las primeras imagenes para que veas a que me refiero.
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
PDF
Hacker del Foro
Mensajes: 152
Registrado: 18 Ene 2013, 23:23

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por PDF »

Hola

El error que te arroja es una mala utilización de arrays, siempre es bueno comprobar si la variable que estas utilizando es un array realmente..[If IsArray($var) then..] Deberías de poner el codigo de tu programa para localizar el error..

Saludos..
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por yasmany »

Este es el código y aun no soluciono, ahora ya no me sale el mensaje de error.
IMPORTANTE PARA TOMAR EN CUENTA
- Cuando ejecuto desde el Scite, funciona perfectamente lee los valores del myfile.ini y realiza la acción de chequeo de las casilla en la pestaña configuración.
- Cuando Ejecuto con doble clic el archivo compilado, funciona perfectamente lee los valores del myfile.ini y realiza la acción de chequeo de las casilla en la pestaña Configuración.
Imagen
- PERO cuando ejecuto desde el menú contextual no me sale nada de casilleros chequeados de acuerdo al ini, es como que no lee el archivo.
Imagen
El problema según mi punto de vista está en la funcion leerArchivoIni()
Pero no encuentro manera de solucionarlo, e intentado bastante. :smt017
NOTA: Para navegar entre las funciones utilizo el Scite Jump

Código: Seleccionar todo

#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=Avy.exe
#AutoIt3Wrapper_Res_Comment=Software [email protected]
#AutoIt3Wrapper_Res_Description=Avy
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Yasmany Curimilma
#AutoIt3Wrapper_Res_Language=1034
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;#AutoIt3Wrapper_Compile_Both=y

#include <EditConstants.au3>
#include <GDIPlus.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIComboBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <UpdownConstants.au3>
#include <GuiTab.au3>
#include <GuiListView.au3>
#include <GuiButton.au3>
#include <Misc.au3>
#include <GUIListBox.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <ListviewConstants.au3>
#include <GUIConstants.au3>
#include <File.au3>
#include <FileConstants.au3>
;OnAutoItExitRegister("lee")
Opt("TrayMenuMode", 1)
Opt("TrayAutoPause", 0)
_Singleton("AVY1991") ; NO REPETIR INSTANCIA DE EJECUCION junto con  #include <Misc.au3>

Global $btnAnalizar, $btnDesinfectar, $unidad, $direccion, $ruta, $descripcion, $cbUnidades, $WinH
Global $tab, $sText, $resultado, $var, $val, $lista, $ch_aplicaciones, $sach, $fil, $interfaz, $var2
Global $u, $vari, $datos, $counts, $vals, $resultados
Global $valor, $state
Global $chekboxao, $chekboxco, $chekboxad, $chekboxado, $chekboxai, $chekboxaio, $chekboxci, $chekboxcio, $chekboxcp
Global $chekboxcpo, $chekboxav, $chekboxavo, $chekboxsbc, $chekboxsbco, $chekboxsvbs, $chekboxsvbso, $chekboxsr, $chekboxsro
Global $chekboxas, $chekboxaso, $chekboxAutorunInf
Dim $aArray[21]


Local Const $AppName = "Avy Antivirus"

Local $sValue = RegRead("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName & "\command", "");verificamos si exisitimos

If $sValue = "" Then
	MsgBox(0, "", "Se escribiran las Claves Correspondientes Para USB Menu Prueba")
	RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName) ;La clave Padre del programa
	RegWrite("HKEY_CLASSES_ROOT\Drive\shell\" & $AppName & "\command", "", "REG_SZ", @ScriptFullPath & " %1") ;la Clave para el Commando
	MsgBox(0, "", "Listo Para usar desde Context Menu")
	Run('explorer.exe ::{20d04fe0-3aea-1069-a2d8-08002b30309d}', "", @SW_MAXIMIZE)
Else
	MsgBox(0, "", "Las Claves Ya Existen :)" & @CRLF & "Ya Puedes usar El Context Menu")
EndIf


;~ ;Interfaz
Local Const $Width = 620
Local Const $Height = 410
Global $interfaz = GUICreate("Avy Antivirus", $Width, $Height, -1, -1, $WS_OVERLAPPEDWINDOW, BitOR($WS_EX_WINDOWEDGE, $ws_ex_acceptfiles))

$ch_aplicaciones = GUICtrlCreateCheckbox("Eliminar Aplicaciones", 10, 357, 115, 28)

;MENUS
$menuArchivo = GUICtrlCreateMenu("&Archivo")
$menuAbrirUnidad = GUICtrlCreateMenuItem("Abrir unidad", $menuArchivo)
$menuCerrar = GUICtrlCreateMenuItem("Cerrar programa", $menuArchivo)
$menuInformacion = GUICtrlCreateMenu("&Informacion")
$menuOpcionesSistema = GUICtrlCreateMenu("&Windows", $menuInformacion)
$menuHerramientasTipoSistema = GUICtrlCreateMenuItem("Version", $menuOpcionesSistema)
$menuHerramientasDetalles = GUICtrlCreateMenuItem("Detalles", $menuOpcionesSistema)
$menuInformacionAcercaAvy = GUICtrlCreateMenuItem("Acerca de Avy", $menuInformacion)

;Botones
$btnPrueba = GUICtrlCreateButton("Prueba", 307, 358, 60, 25)
$btnAnalizar = GUICtrlCreateButton("&Analizar", 369, 358, 60, 25)
GUICtrlSetTip($btnAnalizar, "Analizar unidad seleccionada")
$btnDesinfectar = GUICtrlCreateButton("&Desinfectar", 429, 358, 120, 25)
GUICtrlSetTip(-1, "Desinfectar la unidad")
$btnSalir = GUICtrlCreateButton("&Salir", 550, 358, 60, 25)
GUICtrlSetTip(-1, "Cerrar programa")
$progress = GUICtrlCreateProgress(10, 350, 598, 5)

;Unidades
$cbUnidades = GUICtrlCreateCombo("BUSCAR UNIDAD...", 10, 60, 210, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL, $CBS_UPPERCASE))
GUICtrlSetColor($cbUnidades, 0xff0000)
GUICtrlSetState($cbUnidades, $GUI_FOCUS)

$grupoInformacion = GUICtrlCreateGroup("Informacion de unidad", 260, 55, 346, 55)
;Labels Información de Unidad
$lblTamanio = GUICtrlCreateLabel("", 315, 75, 80, 15)
$lblSerial = GUICtrlCreateLabel("", 315, 90, 75, 15)
$lblespaciolibre = GUICtrlCreateLabel("", 515, 75, 90, 15)
$lblTipo = GUICtrlCreateLabel("", 515, 90, 90, 15)

$lb1 = GUICtrlCreateLabel("Tamaño:", 270, 75, 42, 15)
$lb2 = GUICtrlCreateLabel("Serial:", 271, 90, 40, 15)
$lb3 = GUICtrlCreateLabel("EspacioLibre:", 440, 75, 65, 15)
$lb4 = GUICtrlCreateLabel("Tipo:", 440, 90, 23, 15)
GUICtrlCreateGroup("", -99, -99, 1, 1)
; Tab Items
$tab = GUICtrlCreateTab(10, 100, 600, 250, $WS_MAXIMIZEBOX, $WS_EX_APPWINDOW)
$itemRegistroDeSucesos = GUICtrlCreateTabItem("Registro de sucesos")
$gruposucesos = GUICtrlCreateGroup("D e t a l l e s ", 12, 130, 590, 215)
GUICtrlSetState(-1, $GUI_SHOW)
$lista = GUICtrlCreateListView("Deteccion |Descripción |Acción ", 14, 145, 586, 190, $LVS_SORTASCENDING, BitOR($LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT));
GUICtrlSetState($lista, $GUI_SHOW)
Global $hlista = GUICtrlGetHandle($lista)
_GUICtrlListView_SetColumnWidth($lista, 0, 340)
_GUICtrlListView_SetColumnWidth($lista, 1, 150)
_GUICtrlListView_SetColumnWidth($lista, 2, 60)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateTabItem("")

;--seguridad - tab item
GUICtrlCreateTabItem("Seguridad")
$grupoOpcionesSeguridad = GUICtrlCreateGroup("O p c i o n e s   d e   s e g u r i d a d ", 15, 130, 580, 215)
$ch_proteger = GUICtrlCreateCheckbox("Proteger unidad con Avy Antivirus", 30, 160, 250, 15)
GUICtrlSetFont(-1, 9, 600, 0, "MS Serif")
$nota_ch_proteger = GUICtrlCreateLabel("Ningun virus modficará la carpeta creada...Ver Ayuda", 30, 180, 300, 20)
$ch_remover = GUICtrlCreateCheckbox("Remover protección Avy Antivirus", 30, 160, 200, 15)
GUICtrlSetFont(-1, 9, 600, 0, "MS Serif")
GUICtrlSetState($ch_remover, $GUI_HIDE)
$nota_ch_remover = GUICtrlCreateLabel("Esta unidad tiene dentro el antivirus protegido." & @CR & "Para quitar la proteccion asegurese de no tener ningun otro archivo dentro de la carpeta CON", 30, 180, 500, 30)
GUICtrlSetState($nota_ch_remover, $GUI_HIDE)
$btnaplicar = GUICtrlCreateButton("Aplicar", 30, 220, 100, 30)

$label2 = GUICtrlCreateLabel("Arrastre en el recuadro carpeta/archivo q desea eliminar", 35, 290, 270, 15)
$input1 = GUICtrlCreateInput("", 35, 307, 265, 23, -1, BitOR($ES_right, $es_multiline + $WS_TABSTOP))
GUICtrlSetBkColor(-1, 0xcccccc)
GUICtrlSetState($input1, $GUI_DROPACCEPTED)

$btn_eliminar = GUICtrlCreateButton("X", 302, 305, 30, 25)
$font = "Comic Sans MS"
GUICtrlSetFont(-1, 9, 600, 4, $font)
GUICtrlSetTip(-1, "Eliminar")

$texto1 = "> Proteger unidad y antivirus " & @CRLF & "Crea una carpeta en la unidad seleccionada con el nombre ""CON"" el la cual contendra una subcarpeta llamada ""Antivirus""con el presente software copiado dentro. Esto hará q ningun tipo de virus oculte o elimine la  carpeta CON, por lo tanto Ud. prodrá acceder a dicha carpeta y ejecutar el antivirus.        Se recomienda no guardar ningun tipo de informacion dentro de la carpeta creada ""CON"""
$texto2 = @CRLF & @CRLF & "> Remover proteccion " & @CRLF & "Elimina la carpeta CON  que ha sido creada en la unidad...Se recomienda no tener ningun tipo de informacion dentro para evitar q sea eliminada   "
$myedit = GUICtrlCreateEdit($texto1 & $texto2, 383, 155, 200, 185, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_READONLY + $WS_TABSTOP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateTabItem("")

;---configuracion - tab item
$ayuda = GUICtrlCreateTabItem("Configuración")
$grupoConfiguraciones = GUICtrlCreateGroup("A j u s t e s   d e l   p r o g r a m a ", 15, 130, 580, 215)
GUICtrlCreateLabel("Excluya los elementos que no quiere que sean detectados y registrados, quitando la seleccion de la casilla.", 25, 160, 570, 25)

$chekboxao = GUICtrlCreateCheckbox("Archivos Ocultos", 25, 180, 190, 25)
$chekboxco = GUICtrlCreateCheckbox("Carpetas Ocultas", 25, 200, 190, 25)
$chekboxad = GUICtrlCreateCheckbox("Acceso directos", 25, 220, 190, 25)
$chekboxado = GUICtrlCreateCheckbox("Acceso directos ocultos", 25, 240, 190, 25)
$chekboxai = GUICtrlCreateCheckbox("Archivos innecesarios", 25, 260, 190, 25)
$chekboxaio = GUICtrlCreateCheckbox("Archivos innecesarios Ocultos", 25, 280, 190, 25)
$chekboxci = GUICtrlCreateCheckbox("Carpetas innecesarias", 25, 300, 190, 25)
$chekboxcio = GUICtrlCreateCheckbox("Carpetas innecesarias Ocultas", 220, 180, 190, 25)
$chekboxcp = GUICtrlCreateCheckbox("Carpetas peligrosas", 220, 200, 190, 25)
$chekboxcpo = GUICtrlCreateCheckbox("Carpetas peligrosas ocultas", 220, 220, 190, 25)
$chekboxav = GUICtrlCreateCheckbox("Archivos vacíos", 220, 240, 190, 25)
$chekboxavo = GUICtrlCreateCheckbox("Archivos vacíos ocultos", 220, 260, 190, 25)
$chekboxsbc = GUICtrlCreateCheckbox("Scripts batch/CMD", 220, 280, 190, 25)
$chekboxsbco = GUICtrlCreateCheckbox("Scripts batch/CMD ocultos", 220, 300, 190, 25)
$chekboxsvbs = GUICtrlCreateCheckbox("Scripts VBS", 410, 180, 180, 25)
$chekboxsvbso = GUICtrlCreateCheckbox("Scripts VBS ocultos", 410, 200, 180, 25)
$chekboxsr = GUICtrlCreateCheckbox("Scripts de Registro", 410, 220, 180, 25)
$chekboxsro = GUICtrlCreateCheckbox("Scripts de Registro ocultos", 410, 240, 180, 25)
$chekboxas = GUICtrlCreateCheckbox("Aplicaciones sospechosas", 410, 260, 180, 25)
$chekboxaso = GUICtrlCreateCheckbox("Aplicaciones sospechosas ocultas", 410, 280, 180, 25)
$chekboxAutorunInf = GUICtrlCreateCheckbox("Autorun.inf", 410, 300, 180, 25)
leerArchivoIni()
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateTabItem("")

;Estado de la GUI
_GuiCtrlSetResizin()
desabilitar_Encerar()
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_GETMINMAXINFO, "_WM_GETMINMAXINFO") ; Monitors resizing of the GUI

;TrayMenu
Opt("TrayMenuMode", 1) ; Los ítems de menú por defecto (del Script Pausado/Salir) no serán mostrados.
$TrayItemMostrar = TrayCreateItem("Mostrar")
TrayCreateItem(""); crea una linea separadora
$TrayItemConfiguracion = TrayCreateItem("Configuración")
$TrayItemSeguridad = TrayCreateItem("Seguridad")
$TrayItemAcerca = TrayCreateItem("Acerca")
TrayCreateItem(""); crea una linea separadora
$TrayItemSalir = TrayCreateItem("Salir")
;$TrayItemPrueba = TrayCreateItem("Prueba")

gui()
Func gui()
	TraySetState()
	TraySetClick(16)
	TraySetToolTip("Avy Antivirus" & @CRLF & "Creado por Yasmany Curimilma")
	Opt("GUICloseOnESC", 0) ; no cierra la ventana al presionar ESC
	TrayItemSetState($TrayItemMostrar, $TRAY_DISABLE)
	TrayItemSetState($TrayItemAcerca, $TRAY_DISABLE)
	TrayItemSetState($TrayItemConfiguracion, $TRAY_DISABLE)
	TrayItemSetState($TrayItemSeguridad, $TRAY_DISABLE)
	TrayItemSetState($TrayItemSalir, $TRAY_DISABLE)


	While 1

		actualizarComboDeUnidades()
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				If $nMsg = $GUI_EVENT_CLOSE Then
					GUISetState(@SW_HIDE, $interfaz)
					_tray()
					ExitLoop
				EndIf
			Case $btnPrueba
				leerArchivoIni()
			Case $menuCerrar
				borrar()
				Exit
			Case $cbUnidades
				Clic_combo()
			Case $btnAnalizar
				Clic_Analizar()
			Case $btnDesinfectar
				Clic_Desinfectar()
			Case $btnSalir
				GUISetState(@SW_HIDE, $interfaz)
				_tray()
				ExitLoop
			Case $btnaplicar
				Clic_Aplicar()
			Case $btn_eliminar
				Clic_Eliminar()
			Case $menuAbrirUnidad
				ObtenerLetraDeUnidad()
				ShellExecute($unidad)
			Case $menuInformacionAcercaAvy
				Clic_acerca_de_avy($interfaz)
			Case $menuHerramientasTipoSistema
				ShellExecute("winver")
			Case $menuHerramientasDetalles
				ShellExecute("msinfo32")
			Case $lista

			Case $chekboxao
				_iniWrite()
			Case $chekboxco
				_iniWrite()
			Case $chekboxad
				_iniWrite()
			Case $chekboxado
				_iniWrite()
			Case $chekboxai
				_iniWrite()
			Case $chekboxaio
				_iniWrite()
			Case $chekboxci
				_iniWrite()
			Case $chekboxcio
				_iniWrite()
			Case $chekboxcp
				_iniWrite()
			Case $chekboxcpo
				_iniWrite()
			Case $chekboxav
				_iniWrite()
			Case $chekboxavo
				_iniWrite()
			Case $chekboxsbc
				_iniWrite()
			Case $chekboxsbco
				_iniWrite()
			Case $chekboxsvbs
				_iniWrite()
			Case $chekboxsvbso
				_iniWrite()
			Case $chekboxsr
				_iniWrite()
			Case $chekboxsro
				_iniWrite()
			Case $chekboxas
				_iniWrite()
			Case $chekboxaso
				_iniWrite()
			Case $chekboxAutorunInf
				_iniWrite()
		EndSwitch
	WEnd
EndFunc   ;==>gui

Func comprobar()

EndFunc   ;==>comprobar

Func _tray()

	TraySetState()
	TraySetToolTip("Avy Antivirus" & @CRLF & "Creado por Yasmany Curimilma")
	TraySetClick(16)
	TrayItemSetState($TrayItemMostrar, $TRAY_ENABLE)
	TrayItemSetState($TrayItemAcerca, $TRAY_ENABLE)
	TrayItemSetState($TrayItemConfiguracion, $TRAY_ENABLE)
	TrayItemSetState($TrayItemSeguridad, $TRAY_ENABLE)
	TrayItemSetState($TrayItemSalir, $TRAY_ENABLE)

	If GUICtrlRead($cbUnidades) <> "BUSCAR UNIDAD..." Then
		ActualizarGui()
	EndIf
	comprobar()
	While 1
		;escanear()
		actualizarComboDeUnidades()
		$msg = TrayGetMsg()
		Select
			Case $msg = 0
				ContinueLoop
			Case $msg = $TrayItemMostrar
				GUISetState(@SW_SHOW, $interfaz)
				gui()
				Opt("TrayIconHide", 1)
				ExitLoop
			Case $msg = $TrayItemSalir
				Exit
			Case $msg = $TrayItemConfiguracion
				GUISetState(@SW_SHOW)
				_GUICtrlTab_ClickTab($tab, 2)
				gui()
				ExitLoop
			Case $msg = $TrayItemSeguridad
				GUISetState(@SW_SHOW)
				_GUICtrlTab_ClickTab($tab, 1)
				gui()
				ExitLoop
			Case $msg = $TrayItemAcerca
				GUISetState(@SW_SHOW)
				Clic_acerca_de_avy($WinH)
				ExitLoop
				;Case $msg = $TrayItemPrueba
		EndSelect

	WEnd
EndFunc   ;==>_tray

Func InformacionUnidad()

EndFunc   ;==>InformacionUnidad

Func Clic_Analizar()
EndFunc   ;==>Clic_Analizar


Func Clic_Desinfectar()

EndFunc   ;==>Clic_Desinfectar

;ELIMINAR
Func Clic_Eliminar()

EndFunc   ;==>Clic_Eliminar

Func Clic_Aplicar()

EndFunc   ;==>Clic_Aplicar

Func eliminar_elemento()

EndFunc   ;==>eliminar_elemento

Func eliminar_carpeta()

EndFunc   ;==>eliminar_carpeta

Func desplazarBarra()

EndFunc   ;==>desplazarBarra



Func Clic_acerca_de_avy($WinH)

EndFunc   ;==>Clic_acerca_de_avy

Func ActualizarGui()

EndFunc   ;==>ActualizarGui

Func ObtenerLetraDeUnidad()

EndFunc   ;==>ObtenerLetraDeUnidad

Func valordefinido2()

EndFunc   ;==>valordefinido2

Func valordefinido3($resultado)

EndFunc   ;==>valordefinido3

Func Clic_combo()

EndFunc   ;==>Clic_combo

Func actualizarComboDeUnidades()

EndFunc   ;==>actualizarComboDeUnidades

Func desabilitar_Encerar()

EndFunc   ;==>desabilitar_Encerar

Func malwareFolder()

EndFunc   ;==>malwareFolder

Func _RemoveCheckbox($LVM, $nIndex)

EndFunc   ;==>_RemoveCheckbox



Func identificarExe()
EndFunc   ;==>identificarExe

Func leerAutorun()

EndFunc   ;==>leerAutorun

Func _GuiCtrlSetResizin()

EndFunc   ;==>_GuiCtrlSetResizin



Func escaner($valor)

EndFunc   ;==>escaner

Func leerArchivoIni()

	If IniRead("myfile.ini", "Configuracion", "ao", "") == "0" Then
		GUICtrlSetState($chekboxao, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "ao", "") == "1" Then
		GUICtrlSetState($chekboxao, $GUI_CHECKED)
	EndIf

	If IniRead("myfile.ini", "Configuracion", "co", "") == "0" Then
		GUICtrlSetState($chekboxco, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "co", "") == "1" Then
		GUICtrlSetState($chekboxco, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "ad", "") == "0" Then
		GUICtrlSetState($chekboxad, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "ad", "") == "1" Then
		GUICtrlSetState($chekboxad, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "ado", "") == "0" Then
		GUICtrlSetState($chekboxado, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "ado", "") == "1" Then
		GUICtrlSetState($chekboxado, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "ai", "") == "0" Then
		GUICtrlSetState($chekboxai, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "ai", "") == "1" Then
		GUICtrlSetState($chekboxai, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "aio", "") == "0" Then
		GUICtrlSetState($chekboxaio, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "aio", "") == "1" Then
		GUICtrlSetState($chekboxaio, $GUI_CHECKED)
	EndIf

	If IniRead("myfile.ini", "Configuracion", "ci", "") == "0" Then
		GUICtrlSetState($chekboxci, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "ci", "") == "1" Then
		GUICtrlSetState($chekboxci, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "cio", "") == "0" Then
		GUICtrlSetState($chekboxcio, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "cio", "") == "1" Then
		GUICtrlSetState($chekboxcio, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "cp", "") == "0" Then
		GUICtrlSetState($chekboxcp, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "cp", "") == "1" Then
		GUICtrlSetState($chekboxcp, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "cpo", "") == "0" Then
		GUICtrlSetState($chekboxcpo, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "cpo", "") == "1" Then
		GUICtrlSetState($chekboxcpo, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "av", "") == "0" Then
		GUICtrlSetState($chekboxav, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "av", "") == "1" Then
		GUICtrlSetState($chekboxav, $GUI_CHECKED)
	EndIf

	If IniRead("myfile.ini", "Configuracion", "avo", "") == "0" Then
		GUICtrlSetState($chekboxavo, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "avo", "") == "1" Then
		GUICtrlSetState($chekboxavo, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "sbc", "") == "0" Then
		GUICtrlSetState($chekboxsbc, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "sbc", "") == "1" Then
		GUICtrlSetState($chekboxsbc, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "sbco", "") == "0" Then
		GUICtrlSetState($chekboxsbco, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "sbco", "") == "1" Then
		GUICtrlSetState($chekboxsbco, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "svbs", "") == "0" Then
		GUICtrlSetState($chekboxsvbs, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "svbs", "") == "1" Then
		GUICtrlSetState($chekboxsvbs, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "svbso", "") == "0" Then
		GUICtrlSetState($chekboxsvbso, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "svbso", "") == "1" Then
		GUICtrlSetState($chekboxsvbso, $GUI_CHECKED)
	EndIf

	If IniRead("myfile.ini", "Configuracion", "sr", "") == "0" Then
		GUICtrlSetState($chekboxsr, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "sr", "") == "1" Then
		GUICtrlSetState($chekboxsr, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "sro", "") == "0" Then
		GUICtrlSetState($chekboxsro, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "sro", "") == "1" Then
		GUICtrlSetState($chekboxsro, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "as", "") == "0" Then
		GUICtrlSetState($chekboxas, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "as", "") == "1" Then
		GUICtrlSetState($chekboxas, $GUI_CHECKED)
	EndIf


	If IniRead("myfile.ini", "Configuracion", "aso", "") == "0" Then
		GUICtrlSetState($chekboxaso, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "aso", "") == "1" Then
		GUICtrlSetState($chekboxaso, $GUI_CHECKED)
	EndIf

	If IniRead("myfile.ini", "Configuracion", "AutorunInf", "") == "0" Then
		GUICtrlSetState($chekboxAutorunInf, $GUI_UNCHECKED)
	ElseIf IniRead("myfile.ini", "Configuracion", "AutorunInf", "") == "1" Then
		GUICtrlSetState($chekboxAutorunInf, $GUI_CHECKED)
	EndIf

EndFunc   ;==>leerArchivoIni

Func _iniWrite()

	If GUICtrlRead($chekboxao) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "ao", "0")
		Sleep(500)
		MsgBox(0, "", "NO CHEQUEADO---" & IniRead("myfile.ini", "Configuracion", "ao", "NO ENCONTRADO"))
	Else

		IniWrite("myfile.ini", "Configuracion", "ao", "1")
		Sleep(500)
		MsgBox(0, "", "CHEQUEADO---" & IniRead("myfile.ini", "Configuracion", "ao", "NO ENCONTRADO"))
	EndIf

	If GUICtrlRead($chekboxco) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "co", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "co", "1")
	EndIf

	If GUICtrlRead($chekboxad) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "ad", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "ad", "1")
	EndIf

	If GUICtrlRead($chekboxado) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "ado", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "ado", "1")
	EndIf

	If GUICtrlRead($chekboxai) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "ai", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "ai", "1")
	EndIf

	If GUICtrlRead($chekboxaio) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "aio", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "aio", "1")
	EndIf

	If GUICtrlRead($chekboxci) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "ci", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "ci", "1")
	EndIf

	If GUICtrlRead($chekboxcio) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "cio", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "cio", "1")
	EndIf

	If GUICtrlRead($chekboxcp) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "cp", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "cp", "1")
	EndIf

	If GUICtrlRead($chekboxcpo) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "cpo", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "cpo", "1")
	EndIf


	If GUICtrlRead($chekboxav) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "av", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "av", "1")
	EndIf

	If GUICtrlRead($chekboxavo) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "avo", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "avo", "1")
	EndIf

	If GUICtrlRead($chekboxsbc) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "sbc", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "sbc", "1")
	EndIf

	If GUICtrlRead($chekboxsbco) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "sbco", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "sbco", "1")
	EndIf

	If GUICtrlRead($chekboxsvbs) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "svbs", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "svbs", "1")
	EndIf

	If GUICtrlRead($chekboxsvbso) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "svbso", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "svbso", "1")
	EndIf

	If GUICtrlRead($chekboxsr) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "sr", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "sr", "1")
	EndIf

	If GUICtrlRead($chekboxsro) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "sro", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "sro", "1")
	EndIf

	If GUICtrlRead($chekboxas) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "as", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "as", "1")
	EndIf

	If GUICtrlRead($chekboxaso) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "aso", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "aso", "1")
	EndIf

	If GUICtrlRead($chekboxAutorunInf) = $GUI_UNCHECKED Then
		IniWrite("myfile.ini", "Configuracion", "AutorunInf", "0")
	Else
		IniWrite("myfile.ini", "Configuracion", "AutorunInf", "1")
	EndIf
EndFunc   ;==>_iniWrite
Func _WM_GETMINMAXINFO($hWnd, $msg, $WParam, $LParam) ; used to limit the minimum size of the GUI
	#forceref $hWnd, $Msg, $wParam, $lParam
	Local Const $iWidth = $Width + 16 ; minimum width setting
	Local Const $iHeight = $Height + 38 ; minimum height setting
	If $hWnd = $interfaz Then
		Local $tagMaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $LParam)
		DllStructSetData($tagMaxinfo, 7, $iWidth) ; min width
		DllStructSetData($tagMaxinfo, 8, $iHeight) ; min height
		DllStructSetData($tagMaxinfo, 9, @DesktopWidth) ; max width
		DllStructSetData($tagMaxinfo, 10, @DesktopHeight) ; max height
		Return $GUI_RUNDEFMSG
	EndIf
EndFunc   ;==>_WM_GETMINMAXINFO
Func borrar()
EndFunc   ;==>borrar
El archivo INI contiene estos valores con el nombre de myfile.ini
----------------------
[Configuracion]
ao=1
co=0
ad=1
ado=0
ai=0
aio=1
ci=0
cio=1
cp=1
cpo=1
av=0
avo=1
sbc=1
sbco=1
svbs=1
svbso=1
sr=1
sro=1
as=1
aso=1
AutorunInf=0
----------------------

Espero su pronta ayuda, desde ya muchas gracias.
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: Problema ejecucion desde Menu Contextual y CMD

Mensaje por yasmany »

Gracias a Dany he solucionado el problema, sucede que tenia que agregar

Código: Seleccionar todo

@ScriptDir&"\myfile.ini"
y esa fue la SOLUCION. :smt026
Muy agradecido con todos vosotros ya que en el transcurso del problema aprendí algunas otras cosillas :smt001
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Responder