almacenar nombre ventana

Iniciado por rubeng, 1 Agosto 2006, 08:29 AM

0 Miembros y 1 Visitante están viendo este tema.

rubeng

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

-POLACO-

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 :
'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 : 


'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 .-.

rubeng

muchas gracias voy a probarlo
salu2

rubeng

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

elmaro

agrega en el modulo que tenes despues de Public Sub xListKillDupes(listbox As listbox) esto:

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!

-POLACO-

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