Problema ejecucion desde Menu Contextual y CMD
Problema ejecucion desde Menu Contextual y CMD
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.
En esta ubicación de registro he agregado para el menu contextual de unidades.
¿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
¿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.
Continuo en el intento...
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.
En esta ubicación de registro he agregado para el menu contextual de unidades.
¿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
¿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.
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
https://www.facebook.com/yasmanycurimilma
Re: Problema ejecucion desde Menu Contextual y CMD
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
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
- ............................................
......................................
Re: Problema ejecucion desde Menu Contextual y CMD
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?
¿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
https://www.facebook.com/yasmanycurimilma
Re: Problema ejecucion desde Menu Contextual y CMD
Lo unico que quieres es que se ejecute tu aplicación?
- ............................................
......................................
Re: Problema ejecucion desde Menu Contextual y CMD
Si quieres que se ejecute tu aplicación al darle al contextmenu solo tienes que escribir las claves:
Eso basta. al darle al contextmenu correrá la aplicación.
Yo me refería a hacer algo como esto:
Saludos
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
- ............................................
......................................
Re: Problema ejecucion desde Menu Contextual y CMD
Excelente 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.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.
Excelente 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
https://www.facebook.com/yasmanycurimilma
Re: Problema ejecucion desde Menu Contextual y CMD
No es necesario agregar start. solo abre cmd. arrastra tu aplicación al cmd y dale enter. y debería arrancar normal.
saludos
saludos
- ............................................
......................................
Re: Problema ejecucion desde Menu Contextual y CMD
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.
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.
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
https://www.facebook.com/yasmanycurimilma
Re: Problema ejecucion desde Menu Contextual y CMD
Proba el segundo ejemplo que te coloque.
saludos
saludos
- ............................................
......................................
Re: Problema ejecucion desde Menu Contextual y CMD
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
https://www.facebook.com/yasmanycurimilma
Re: Problema ejecucion desde Menu Contextual y CMD
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..
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..
Re: Problema ejecucion desde Menu Contextual y CMD
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.
- 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.
El problema según mi punto de vista está en la funcion leerArchivoIni()
Pero no encuentro manera de solucionarlo, e intentado bastante.
NOTA: Para navegar entre las funciones utilizo el Scite Jump
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.
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.
- 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.
El problema según mi punto de vista está en la funcion leerArchivoIni()
Pero no encuentro manera de solucionarlo, e intentado bastante.
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
----------------------
[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
https://www.facebook.com/yasmanycurimilma
Re: Problema ejecucion desde Menu Contextual y CMD
Gracias a Dany he solucionado el problema, sucede que tenia que agregar
y esa fue la SOLUCION.
Muy agradecido con todos vosotros ya que en el transcurso del problema aprendí algunas otras cosillas
Código: Seleccionar todo
@ScriptDir&"\myfile.ini"
Muy agradecido con todos vosotros ya que en el transcurso del problema aprendí algunas otras cosillas
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
https://www.facebook.com/yasmanycurimilma