![]() |
Devolver Foco a una aplicación creada con ShellExecuteEx
Hola !
Abro una nueva aplicación con ShellExecuteEx a través de un TShellExecuteInfo y si no estoy errado, debería poder obtener el Handle de la aplicación recién creada con el valor hProcess, no ??
La variable Aux_Handle debería contener el Handle del Browser de internet que esté configurado por defecto en el sistema y que acabo de abrir. Lo que quiero conseguir es que más tarde, cuando se devuelva el foco a mi aplicación Delphi, se realicen una serie de operaciones y finalmente se devuelva el foco a la ventana del browser que acabo de abrir. Para ello utilizo el evento OnActivate del Form en cuestión que previamente puse en otro sitio a Form.OnActivate := Form.ActivateParticular :
Pero no me devuelve el foco a la ventana del explorador de internet anterior. Qué estoy haciendo mal ? :confused: |
El problema está en que ExecInfo.hProcess es el Handle del proceso, no de la ventana principal. Ten en cuenta que no todos los procesos tienen ventanas.
Deberás enumerar las ventanas para encontrar la que te interesa contrastando con tu proceso (hProcess o Pid). Tambien puedes tratar de encontrarla con FindWindow. Saludos. |
Gracias por responder, voy a mirar lo que comentas.
El problema de FindWindow es que necesito saber qué ventana debo de buscar, y lo que quiero abrir con el proceso indicado, es un explorador de internet, cualquier que esté configurado por defecto en el sistema. Podría mirar cual está configurado por defecto, y después también mirar si existen varias copias abiertas del mismo, pero pensaba que con ShellExecuteEx sería capaz de obtener sin más, el handle de la ventana que acababa de abrir. Lo que sí he podido chequear, es que ExecInfo.hProcess es siempre 0 en el caso de que ejecute el código indicado. Realmente no sé por qué es así. |
Cita:
Cita:
|
Tal como te comenta Roman, quizás debas forzar que se abra un proceso nuevo si o si. Yo usaría CreateProcess.
Saludos. |
La franja horaria es GMT +2. Ahora son las 07:42:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi