teclado - Enviar un clic de mouse a un botón en la barra de tareas usando C#
evento click en visual basic (4)
Consulte la sección "Cómo robar el foco en 2K / XP" en http://www.codeproject.com/KB/dialog/dlgboxtricks.aspx , ya que esto es exactamente lo que necesita. No iría a la ruta de la barra de tareas ya que la barra de tareas podría estar oculta o simplemente no estar allí.
En una aplicación en la que estoy trabajando actualmente, un requisito es traer una ventana de una aplicación externa al primer plano. Hacer llamadas de la API de Win32 como la ventana BringWindowToTop y SetForeground no funciona todo el tiempo. Esto se debe a algunas restricciones dentro de Windows XP. Lo que me gustaría hacer en su lugar es enviar simular un clic con el mouse en el botón de la ventana en la barra de tareas que espero que traiga la ventana al frente. ¿Alguien sabe cómo esto es posible?
Es posible. Pero es extremadamente incompleto. Su aplicación también puede romperse con la próxima versión de Windows, ya que no está documentada. Lo que necesita hacer es encontrar el identificador de ventana de la barra de tareas, luego buscar el identificador de ventana de la ventana secundaria que representa el botón, y luego enviarle un mensaje WM_MOUSEDOWN (Creo).
Aquí encontrará un poco sobre cómo encontrar el identificador de ventana de la barra de tareas:
FWIW, las restricciones en BringWindowToTop / SetForeground están allí porque es irritante cuando una ventana roba el foco. Eso puede no importar si trabajas en un entorno corporativo. Solo téngalo en cuenta. :)
Lo usé en un programa donde necesitaba simular clics y movimientos del mouse;
Para ser sincero, nunca tuve un problema para poner una ventana en primer plano en XP / Vista / 2003/2000.
Debe asegurarse de hacer lo siguiente:
- Compruebe si IsIconic (minimizado)
- Si el resultado n. ° 1 es verdadero, llame a ShowWindow pasando SW_RESTORE
- Luego, llame a SetForegroundWindow
Nunca he tenido problemas que pueda pensar en hacerlo con esos pasos.