Pregunta

En una aplicación que estoy trabajando actualmente, un requisito es traer a una ventana de una aplicación externa para el primer plano.Hacer llamadas a la API Win32, tales como BringWindowToTop y SetForeground ventana no funcionan todo el tiempo.Esto es debido a algunas restricciones en Windows XP.Lo que me gustaría hacer en su lugar es enviar simular un clic de ratón en la ventana del botón en la barra de tareas, que yo estoy esperando que traerá la ventana al frente.¿Alguien sabe cómo es esto posible?

¿Fue útil?

Solución

Consulta la sección "Cómo robar el foco en 2K/XP" en http://www.codeproject.com/KB/dialog/dlgboxtricks.aspx, como esto es exactamente lo que usted necesita.Yo no iría a la barra de tareas de la ruta como la barra de tareas podrían estar ocultos o simplemente no existen.

Otros consejos

Es posible.Pero es muy superficiales.La aplicación también se puede romper con la próxima versión de Windows, ya que es indocumentado.Lo que usted necesita hacer es encontrar el identificador de ventana de la barra de tareas, a continuación, busque el identificador de ventana de la ventana secundaria que representan el botón, a continuación, enviar un WM_MOUSEDOWN (creo) mensaje.

He aquí un poco en encontrar el identificador de ventana de la barra de tareas:

http://www.codeproject.com/

FWIW, las restricciones en el BringWindowToTop/SetForeground están ahí porque es irritante cuando una ventana roba el foco.Que no importa si estás trabajando en un entorno corporativo.Sólo ten en mente.:)

He utilizado esto en un programa en el que necesitaba para simular clics y movimientos del ratón;

Global de Teclado y Ratón de Biblioteca

Para ser honesto, nunca he tenido un problema trayendo una ventana de primer plano en XP/Vista/2003/2000.

Usted necesita para asegurarse de que hacer lo siguiente:

  1. Compruebe si IsIconic (minimizado)
  2. Si #1 resultados en true, entonces la llamada ShowWindow pasando SW_RESTORE
  3. A continuación, llame SetForegroundWindow

Nunca he tenido problemas de que se me ocurre de hacerlo con los pasos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top