Página 1 de 1

Función WinList ()

Publicado: 23 Mar 2010, 23:48
por joaquin
He intentado utilizar la funcion WinList () para obtener un listado de las ventanas activas y visibles al correr un script.
He utilizado el code del ejemplo de la ayuda y me da el listado correcto de las ventanas pero lo muestra una a una en cada msgbox. Me interesa que dé el listado en un sólo msgbox. Intenté resolver con la función _ArrayToClip, pero no funciona.
Agradecería aportaciones al tema...

Código: Seleccionar todo

   
#include <Array.au3>
$var = WinList()

For $i = 1 to $var[0][0]
  ; Solo muestra las ventanas visibles que tienen títulos
  If $var[$i][0] <> "" AND $var[$i][0] <> "Program Manager" AND IsVisible($var[$i][1]) Then
     _ArrayToClip($var,$i=1, $i=10)
  EndIf
Next
MsgBox(0, "_ArrayToClip() Test", ClipGet())

Func IsVisible($handle)
  If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
  Else
    Return 0
  EndIf
EndFunc
 

Re: Función WinList ()

Publicado: 24 Mar 2010, 09:01
por gna08
Bueno algo rápido que se me ocurre ya que estoy en el móvil, es almacenar las variables en otra, y en cada vuelta, ir agregando a una lista, esta echo casi a mano alzada, Jajaja, asik lo vas a tener que probar vos, creo que esta la función, _arraytostring() que haría esto pero el tema es que se te complica con el tipo de matriz que devuelve la función winlist asik proba esto y decime si te sirve.

Código: Seleccionar todo

   
#include 
global $lista
$var = WinList()
For $i = 1 to $var[0][0]
  ; Solo muestra las ventanas visibles que tienen títulos
  If $var[$i][0] <> "" AND $var[$i][0] <> "Program Manager" AND IsVisible($var[$i][1]) Then
     $lista &= $var[$i][0] & @crlf
  EndIf
Next

msgbox(0, "", $lista)

Func IsVisible($handle)
  If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
  Else
    Return 0
  EndIf
EndFunc
 
técnicamente debería de funcionar y si no, es xq me comí algo q aca no puedo probar.
espero tú respuesta y saludos.

Re: Función WinList ()

Publicado: 24 Mar 2010, 19:42
por joaquin
Bueno, muchas gracias gna08, con la línea que agregaste se solucionó; funciona perfectamente y es justo lo que necesitaba: un msgbox con el listado. Me estaba complicando innecesariamente con UDF's.....naaaaa!!

:smt023
Saludos