clases de ventanas

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

clases de ventanas

Mensaje por Jonny »

Hola

¿Sabeis donde puedo encontrar documentación sobre todas las clases que hay de ventanas?.

Es que, quiero comprobar todas las ventanas existentes en el sistema, y actuar solo cuando aparecen algunas concretas. Para eso, utilizo Winlist() y voy buscando por nombre por ejemplo; pero veo al ver el array que me devuelve esta función, que hay muchísimas ventanas (casi todas ocultas), pero según esta función, tengo ahora mismo ciento treinta y tantas ventanas, de las que solo veo tres o cuatro que tengo abiertas. Viendo las clases de todas las ventanas, veo que hay muchas clases y muy raras algunas...

Aparece en varias ventanas la clase tooltips_class32; (esto puede servir para lo que quería hacer de capturar tooltips, seguramente), que preguntaba en otro post...

No entiendo muy bien esto de las clases de ventanas, porque en muchas aparecen cosas como: "static", button".... ¿Esto no son controles?...

Y muchas clases, ni las conozco, como workerW, cicero, #43 y un montón más que me salen con WinGetClassList().

A ver si me decís donde puedo ver todas esas clases y qué son, porque no es lo mismo esto que las propiedades de ventana, que se obtienen con el programa de Chefito ¿verdad?.

Acias,

Salu2!
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: clases de ventanas

Mensaje por Jonny »

Sorry, lo olvidé. He hecho este pequeño código para ver las ventanas que hay en el sistema y sus clases:

Código: Seleccionar todo

#Include <WinApi.au3>

$WList=WinList()
For $I=1 To $WList[0][0] Step +1
$WinClass=_WinAPI_GetClassName($WList[$I][1])
Msgbox(0, "", $WList[$I][0]&@CRLF&$WinClass)
Next
Exit
Con esto podréis ver todas esas clases de las que os hablaba.

Como veréis, muchas ventanas (las tooltips_class32 ninguna) no tienen título...

Salu2!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: clases de ventanas

Mensaje por Ximorro »

En Windows la gran mayoría de los controles son "windowed object", objeto "enventanado". Vaya, que ventanas hay a porrillo.

Los tipos, eso sí te puedo contestar, pero te va a cabrear: SON INFINITOS (al menos potencialmente).

Los programadores definen sus tipos cuando programan, así que por ejemplo una ventana de Firefox es MozillaUIWindowClass, pero la de IExplorer es IEFrame .

Y si yo hago mi programa de ganar a la loto igual a la ventana principal le pongo un tipo XimoRicoConlaLotoGUI, o sea ¡lo que me dé la gana!
Claro que si lo hago en AutoIt será de clase AutoIt v3 GUI, porque es AutoIT el que la crea ;-)

Conclusión, no hay un sitio donde te digan las clases de ventanas posibles, porque hay tantas posibles como la imaginación de los programadores. ;-)

Por cierto, un poco incómodo sacar el listado a base de MsgBox, lo he modificado para que lo saque por consola, así no hay que estar pasando uno a uno, además desde Scite es muy cómodo porque puedo copiarlo a un archivo, hacer búsquedas, etc (¡de paso le he puesto indentación! :smt003 ):

Código: Seleccionar todo

#Include <WinApi.au3>

$WList=WinList()
ConsoleWrite("*** Ventanas Listadas: " & $WList[0][0] & @CRLF)
For $I=1 To $WList[0][0]
	$WinClass=_WinAPI_GetClassName($WList[$I][1])
	ConsoleWrite($WList[$I][0] & " - " & $WinClass & @CRLF)
Next
Exit
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: clases de ventanas

Mensaje por Jonny »

Hola
Los programadores definen sus tipos cuando programan, así que por ejemplo una ventana de Firefox es MozillaUIWindowClass, pero la de IExplorer es IEFrame
.

Y si yo hago mi programa de ganar a la loto igual a la ventana principal le pongo un tipo XimoRicoConlaLotoGUI, o sea ¡lo que me dé la gana!
Claro que si lo hago en AutoIt será de clase AutoIt v3 GUI, porque es AutoIT el que la crea
:P
:)

Vaya, pensé que habrían unos tipos de ventana predefinidos por Microsoft, y que en algunos casos podrían crearse ventanas con clases inventadas, como ocurre con los controles en java...

Entonces, las clases solo podrían servirme para detectar ventanas de un tipo, que sepa casi seguro que van a tener esa clase: Tooltips_class32, desktop y alguna más que hay por ahí que parece que no varía. Vaya, las que se creen con las apis de Windows, por ejemplo.

Menos mal, que quería detectar un tipo concreto de ventana, si no ¡sí me hubiera cabreado! :).


La verdad que sí, es más cómodo así el programilla. Lo hice como me digiste, para buscar tooltips, y me he encontrado con todo el mogollón :).

Por cierto, he llegado a la conclusión, que los tooltips deben estar ocultos y mostrarse cuando se llame a una función que los muestre, porque según el código que he puesto para ver las ventanas del sistema, ¡tengo 37 tooltips!. Eso sí, con ayuda del programa de Chefito, veo que ninguno es visible.
Así, qué, tendré que plantearlo de otra manera; porque yo pensaba que se creaban al momento de llamar a la función Tooltip() (de autoit) o la api que lo cree, y se destruía la ventana del tooltip una vez dejaba de verse...

Veo, que el administrador de tareas parece que tiene una clase tipo ventanita del conmutador de ventanas (eso he leído), que es "#algo"... ¿Sabeis cual es exactamente?

Salu2!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: clases de ventanas

Mensaje por Ximorro »

¿Te refieres al conmutador de tareas de Alt+TAB? Esa es #32771, y bueno, quizás esto te recuerde algo, ahí se habla de ello largo y tendido:
http://www.emesn.com/autoitforum/viewto ... f=3&t=1757
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: clases de ventanas

Mensaje por Jonny »

Hola

No... al administrador de tareas (ctrl+alt+supr) :).

Salu2!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: clases de ventanas

Mensaje por Ximorro »

Ah perdón, me he liado.
Pues sí, te recomiendo utilizar la herramienta que viene con autoit, la Window Info, es muy útil para este tipo de cosas.

Esa ventana es de clase #32770, ¡casi la misma que la otra! Así que casi acierto con la respuesta :smt005
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder