[Lazarus-es] TProcess Handle

José Mejuto joshyfun en gmail.com
Jue Ago 1 13:57:43 CEST 2013


El 01/08/2013 8:16, Antonio Évora escribió:
>>
>> No puedes :( Un proceso puede lanzar múltiples "windows", por lo tanto
>> lo único que puedes hacer es, usando el ThreadHandle, enumerar todas
>> las ventanas de ese proceso, y de algún modo elegir la que quieres.
>>
> Gracias José.
> Entiendo lo que me dices. Pero siempre debe haber un
> formulario/ventana/window principal, ¿como puedo saber cual es el
> principal?
>

Hola,

No, no hay, ese es un concepto de Delphi. En mi opinión lo máximo que 
puedes acercarte de modo genérico es lanzar el proceso, y entrar en un 
bucle esperando a que el proceso tenga alguna ventana abierta 
(EnumWindows) y usar la primera que aparezca. Lo malo es que si el 
programa tiene una ventana de presentación (splash), esa es la que te 
comerás :(

Por supuesto esto no es cross-platform, en Windows funciona pero lo dudo 
en otros SO.

EnumWindows devuelve los handles de las ventanas por Z-Order, o sea, 
primero la que se muestra por encima de las otras (dentro de ese proceso).

-- 





More information about the Lazarus-es mailing list