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?Enviando un clic de mouse a un botón en la barra de tareas usando C#
Respuesta
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í.
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í hay un poco en encontrar el identificador de ventana de la barra de tareas:
Fwiw, las restricciones a BringWindowToTop/setForeground están allí porque es irritante cuando una ventana se centran robos. 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 honesto, nunca he tenido un problema con lo que una ventana al primer plano en XP/Vista/2003/de 2000.
usted necesita para asegurarse de que haga lo siguiente:
- Comprobar si IsIconic (minimizado)
- Si # 1 da como resultado cierto, entonces llaman ShowWindow pasar SW_RESTORE
- Entonces llame SetForegroundWindow
Nunca he tenido problemas que pueda pensar en hacerlo con esos pasos.
- 1. Haciendo clic en el mouse enviando mensajes
- 2. Cómo activar programáticamente un mouse, haga clic izquierdo en C#?
- 3. Nueva instancia en la barra de tareas medio-clic/shift + clic
- 4. Botón de carga con un clic
- 5. Determinar si una ventana tiene un botón de la barra de tareas
- 6. Barra de tareas intermitente usando Java (a pidgin || MSN)
- 7. ¿Cómo simulamos un clic del mouse con Xlib/C?
- 8. Mostrar alerta en un botón de clic
- 9. Fijando una aplicación Java usando Launch4j a la barra de tareas de Windows 7
- 10. ¿Cómo se muestra el progreso en el botón de estado/barra de tareas usando Delphi 7?
- 11. Agregando un botón a la barra de acciones con ActionBarSherlock
- 12. Exportación de tareas a 'C usando DPI
- 13. ¿Configurando un ícono diferente de la barra de tareas al icono que se muestra en la barra de título (C#)?
- 14. ¿Cómo coloco un div junto a un clic del mouse usando JQuery?
- 15. Aplicación en la barra de tareas
- 16. Haga clic en un botón en Scrapy
- 17. Triple Mouse Haga clic en C#?
- 18. Gráfico de barras ZedGraph C#: cómo verificar qué barra hizo clic con el mouse?
- 19. Barra de progreso de Windows 7 en la barra de tareas en C#?
- 20. Simulando un evento de clic de mouse en PyQt
- 21. Enviando SIGINT a un subproceso de python
- 22. Insertar en la barra de tareas
- 23. Llamando al teclado en pantalla usando un botón en C#
- 24. ToolStrip veces no responde a un clic del mouse
- 25. ¿Cómo simular un botón hacer clic usando el código?
- 26. Enviando correos electrónicos usando C
- 27. ¿Cómo paso los valores a un evento de clic de botón de imagen en C#?
- 28. Simular un clic del mouse en Flash mediante JavaScript
- 29. VB.NET ¿Cómo minimizar una ventana a la barra de tareas?
- 30. barra de tareas de Windows 7 progreso