Página 1 de 1

Antivirus - Leer todos los Items checkeados

Publicado: 05 Abr 2014, 08:11
por yasmany
Hola a todos, tengo un problema que aun no he podido resolver.
Mi objetivo es mostrar en mensaje todos los items que están checkeados pero solo los valores de la primera columna.
De acuerdo al ejemplo que planteo en el siguiente código e intentado leer todo el contenido del Listview ($lista) mediante el botón Analizar ($btnAnalizar)
Pero resulta que solo me lee solo un item checkeado, ¿Podrian Ayudarme? he realizado algo demasiado sencillo pero no doy con los bucles como para poder utilizar correctamente en ciertos casos.
Espero su pronta respuesta.

Código: Seleccionar todo

#NoTrayIcon
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=icono.ico
#AutoIt3Wrapper_Outfile=Avy.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_Res_Comment=Software gratuito [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 ****

#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 <GuiConstantsEx.au3>
#include <UpdownConstants.au3>
#include <GuiTab.au3>
#include <GuiListView.au3>
#include <EditConstants.au3>
#include <GuiButton.au3>
#include <Misc.au3>
#include <GUIListBox.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <ListviewConstants.au3>


_Singleton("AVY1991") ; NO REPETIR INSTANCIA DE EJECUCION junto con  #include <Misc.au3>
Global $btnDesinfectar, $unidad, $ed
Dim $aArray[21], $Array[4]



; GUI
$interfaz = GUICreate("Avy", 620, 405, -1, -1, -1, $ws_ex_acceptfiles)
;~ $interfaz = GUICreate("Avy", 620, 405, -1, -1,$WS_OVERLAPPEDWINDOW, BitOR($WS_EX_CONTROLPARENT,-1) , $ws_ex_acceptfiles)
GUICtrlCreatePic(@AppDataDir & "\banner.jpg", 0, 0, 620, 50)

$iconointerfaz = GUISetIcon("icono.ico", 0)
$ch_desplazar = GUICtrlCreateCheckbox("Desplazar lista", 15, 355, 100, 25)
GUICtrlSetState(-1, $GUI_CHECKED)
$ch_aplicaciones = GUICtrlCreateCheckbox("Eliminar Aplicaciones", 120, 355, 120, 25)
GUICtrlSetState($ch_aplicaciones, $GUI_HIDE)

;MENUS
$menuArchivo = GUICtrlCreateMenu("&Archivo")
$menuAbrirUnidad = GUICtrlCreateMenuItem("Abrir unidad", $menuArchivo)

;GUICtrlSetState(-1, $GUI_DEFBUTTON);PARA PONERLO EN NEGRITA
$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
$btnAnalizar = GUICtrlCreateButton("&Analizar", 369, 355, 60, 25)
GUICtrlSetTip($btnAnalizar, "Analizar unidad seleccionada")

$btnDesinfectar = GUICtrlCreateButton("&Desinfectar", 429, 355, 120, 25)
GUICtrlSetTip(-1, "Analize y desinfecte la unidad")

$btnSalir = GUICtrlCreateButton("&Salir", 550, 355, 60, 25)
GUICtrlSetTip(-1, "Cerrar programa")

;ETIQUETAS DE INFORMACION
$lblNombre = GUICtrlCreateLabel("", 278, 75, 80, 15)
$lblSerial = GUICtrlCreateLabel("", 278, 90, 75, 15)
$lblSize = GUICtrlCreateLabel("", 410, 75, 185, 15)
$lblTipo = GUICtrlCreateLabel("", 410, 90, 185, 15)

GUICtrlCreateLabel("Nombre:", 235, 75, 40, 15)
GUICtrlCreateLabel("Serial:", 235, 90, 40, 15)
GUICtrlCreateLabel("Tamaño:", 365, 75, 43, 15)
GUICtrlCreateLabel("Tipo:", 365, 90, 23, 15)

;UNIDADES
$cbUnidades = GUICtrlCreateCombo("BUSCAR UNIDAD...", 10, 60, 193, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL, $CBS_UPPERCASE))
GUICtrlSetColor($cbUnidades, 0xff0000)


GUICtrlSetState($cbUnidades, $GUI_FOCUS)
$gruposucesos = GUICtrlCreateGroup("Informacion de unidad", 230, 55, 375, 60)
GUICtrlSetFont(-1, 9, 600, 0, "MS Serif")
;boton_prueba
$btn_actualizar = GUICtrlCreateButton("+", 205, 59, 17, 22)
GUICtrlSetTip($btn_actualizar, "Actualizar lista de unidades", "Avy", 1)

;///////////////////
; TAB ITEMS
;//////////////////////

;REGISTRO DE SUCESO ****************************************
$tab = GUICtrlCreateTab(10, 100, 600, 250, $WS_MAXIMIZEBOX, $WS_EX_APPWINDOW)
$itemRegistroDeSucesos = GUICtrlCreateTabItem("Registro de sucesos")
$gruposucesos = GUICtrlCreateGroup("Detalles", 15, 130, 590, 215)
GUICtrlSetState(-1, $GUI_SHOW); Mostrando la información detallada
$lista = GUICtrlCreateListView("Deteccion |Tipo |Estado ", 18, 150, 575, 190, -1, BitOR($LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT));;
_GUICtrlListView_SetColumnWidth($lista, 0, 300)
_GUICtrlListView_SetColumnWidth($lista, 1, 150)
_GUICtrlListView_SetColumnWidth($lista, 2, 100)
GUICtrlSetState($lista, $GUI_SHOW)

;SEGURIDAD
GUICtrlCreateTabItem("Seguridad")
GUICtrlCreateGroup("Ociones de seguridad", 15, 130, 580, 215)
$ch_proteger = GUICtrlCreateCheckbox("Proteger unidad y antivirus", 20, 180, 250, 15)
GUICtrlSetFont(-1, 9, 600, 0, "MS Serif")
$nota_ch_proteger = GUICtrlCreateLabel("Ningun virus modficará la carpeta creada...Ver Ayuda", 35, 200, 300, 20)
$ch_remover = GUICtrlCreateCheckbox("Remover proteccion portable del antivirus", 20, 180, 290, 15)
GUICtrlSetFont(-1, 9, 600, 0, "MS Serif")
GUICtrlSetState($ch_remover, $GUI_HIDE)

$btn_eliminar = GUICtrlCreateButton("X", 240, 305, 40, 25)
$font = "Comic Sans MS"
GUICtrlSetFont(-1, 9, 600, 4, $font) ; muestra caracteres
GUICtrlSetTip(-1, "Eliminar")

$label2 = GUICtrlCreateLabel("Arrastre en el recuadro carpeta/archivo q desea eliminar", 35, 290, 270, 15)
$input1 = GUICtrlCreateInput("", 35, 305, 200, 25, -1, BitOR($ES_right, $es_multiline));Bitor se utiliza en controles antecediendo un -1,BitOR
GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; Para permitir arrastrar y soltar pero aplicando al crear la  GUI al final de la linea -1,$ws_ex_acceptfiles

$btnaplicar = GUICtrlCreateButton("Aplicar", 490, 300, 100, 40)

;AYUDA
$ayuda = GUICtrlCreateTabItem("Ayuda")

GUICtrlCreateListViewItem("abcdefg|hijklm|nopqrst", $lista)
GUICtrlCreateListViewItem("dfgvdfgxcv|hijklm|nopqrst", $lista)
GUICtrlCreateListViewItem("cxvcxbv|hijkddlm|nopqrst", $lista)
GUICtrlCreateListViewItem("213e3123|hijklm|nopqrst", $lista)
GUICtrlCreateListViewItem("abcdefg|hijkbbgblm|nopqrst", $lista)
GUICtrlCreateListViewItem("abcdefg|hijkdgvfglm|nopqrst", $lista)
GUICtrlCreateListViewItem("xcvsssxcv|hijdddklm|nopqrst", $lista)
GUICtrlCreateListViewItem("xcvfdt|vcbdfghf|cbfdsf", $lista)

;ESTADO DE LA GUI
GUISetState(@SW_SHOW)

;CASOS
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg

		Case $GUI_EVENT_CLOSE
			If $nMsg = $GUI_EVENT_CLOSE Then
				Exit
			EndIf
		Case $btnAnalizar
			$o = GUICtrlRead($lista); obtenfo el id del item
			$n = GUICtrlRead($o); leo el id del item
			If GUICtrlGetState($o = $GUI_CHECKED) Then
				MsgBox(64, "aaa", $n);
			EndIf

	EndSwitch

WEnd

Re: Antivirus - Leer todos los Items checkeados

Publicado: 05 Abr 2014, 20:36
por Dany
Hola. usa las funciones para los listview. para lo que quieres hacer cambia el codigo de tu $btnAnalizar por este:

Código: Seleccionar todo

for $i=0 to _GUICtrlListView_GetItemCount($lista)-1
			   if _GUICtrlListView_GetItemChecked($lista,$i) then
            MsgBox(64,_GUICtrlListView_GetItemChecked($lista,$i), _GUICtrlListView_GetItemText($lista,$i));
			EndIf
		    Next
Y te mostrara en Msgbox los selecionados.

Saludos

Re: Antivirus - Leer todos los Items checkeados

Publicado: 06 Abr 2014, 01:45
por yasmany
Mil Gracias Dany, muy agradecido por la ayuda me ha servido de mucho.