Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: rubeng en 1 Agosto 2006, 08:29 am



Título: almacenar nombre ventana
Publicado por: rubeng en 1 Agosto 2006, 08:29 am
bueno quiero que se capte el nombre de la ventana y los vaya poniendo en un listbox pero que no aparezcan repetidos. lo de capturar el nombre de la ventana lo se hacer (getwindowstext) pero no se pasar al listbox y que no se repitan o sea que no figure un mismo dato dos veces.
salu2


Título: Re: almacenar nombre ventana
Publicado por: -POLACO- en 1 Agosto 2006, 09:03 am
Mira para pasar al listbox los resultados de (getwindowstext) solo se debe hacer asi
supongamos que lo que te tira el (getwindowstext) lo guardas en la variable "Nombre_Ventana"
List1.AddItem Nombre_Ventana asi lo agregas al listbox.
Ahora para Eliminar Duplicados (No es mio este code) pero funciona joya,debes agregar un Modulo al proyecto  y pega este code :
Código:
'MODULO
Public Sub xListKillDupes(listbox As listbox)
'Elimina duplicado en ListBox
        Dim Search1 As Long
        Dim Search2 As Long
        Dim KillDupe As Long
KillDupe = 0
For Search1& = 0 To listbox.ListCount - 1
For Search2& = Search1& + 1 To listbox.ListCount - 1
KillDupe = KillDupe + 1
If listbox.List(Search1&) = listbox.List(Search2&) Then
listbox.RemoveItem Search2&
Search2& = Search2& - 1
End If
Next Search2&
Next Search1&

End Sub
para llamarlo esto en el Formulario  debes colcoar asi : 

Código:
'FORMULARIO
' Nombre_Ventana aca guardas los nombres de las ventanas
List1.AddItem Nombre_Ventana'carga los resultados
Call xListKillDupes(List1)'elimina duplicados

Espero te sirva ,si no entendes postea ,saludos .-.


Título: Re: almacenar nombre ventana
Publicado por: rubeng en 1 Agosto 2006, 20:07 pm
muchas gracias voy a probarlo
salu2


Título: Re: almacenar nombre ventana
Publicado por: rubeng en 2 Agosto 2006, 07:36 am
me funciona un rato pero luego me dice llamada a procedimiento o argumento no valida y me señala esta parte en amarillo
listbox.RemoveItem Search2&
alguien sabe por que ? gracias


Título: Re: almacenar nombre ventana
Publicado por: elmaro en 2 Agosto 2006, 17:50 pm
agrega en el modulo que tenes despues de Public Sub xListKillDupes(listbox As listbox) esto:
Código:
On Error Resume Next
asi simplemente pasa x alto ese error,. que parece una uevada
no prove el codigo ni nada,. pero calculo k es xq ya no se encuentran mas "repetidos" entonces no va a "remover" nada
suerte




El MaRo!


Título: Re: almacenar nombre ventana
Publicado por: -POLACO- en 10 Agosto 2006, 20:48 pm
Tiene razon ElMaro .
Evidentemente el error te lo tira por que quiere eliminar algo que NO existe.
Fijate que quizas el tengas alguna ventana sin Titulo y por eso te da el error (Me.Caption="" ).
o si no hace la comparacion algo asi :

If Nombre_Ventana<>"" then
Call xListKillDupes(List1)
End If

Asi NO dara error. Saludos .-.
Del extasis a la agonia ,oscila nuestra hitoria;Podemosser lo mejor y tambien lo peor ,con la misma facilidad.Bersuit