Lo que quiero hacer es verificar si mi aplicación tiene foco porque si no lo está, mostraré una ventana de alerta justo sobre el área de notificación para mostrar algún mensaje al usuario final.¿Cómo puedo verificar si mi aplicación tiene foco?
Respuesta
Llame Windows.GetForegroundWindow()
y pase el HWND
a la función Controls.FindControl()
. Devolverá un puntero que no sea nulo TWinControl
si el HWND
pertenece a su proceso. Por ejemplo:
if FindControl(GetForegroundWindow()) <> nil then
// has focus ...
else
// does not have focus ...
Si su aplicación consiste en un único formulario, entonces
GetForegroundWindow = Handle
será suficiente. La expresión anterior es verdadera si y solo si su formulario es la ventana de primer plano, es decir, si el foco del teclado pertenece a un control en este formulario (o al formulario mismo).
Si su aplicación consiste en una serie de formularios, simplemente recorra y compruebe si alguno de ellos coincide con GetForegroundWindow
.
Una ligera variación en la respuesta Remys es:
Var
Win: TWinControl;
Begin
Win := FindControl(GetForegroundWindow);
if Win <> nil then
// StringGrid1.Row :=5;
// StringGrid1.SetFocus;
compilado bien para mí, pero me pareció poco fiable durante la depuración, la stringgrid.setfocus se llama incluso cuando la ventana ISN' t centrado causando un error.
D2007 tiene esta propiedad útil
if Application.Active then
//
- 1. ¿Cómo puedo verificar si mi programa tiene datos conectados
- 2. Selenium IDE: ¿Cómo verificar si un elemento tiene un foco?
- 3. ¿Cómo puedo saber si una ventana tiene foco? (API Win32)
- 4. Determine si la aplicación actual está activada (tiene foco)
- 5. ¿Cómo determinar si un campo tiene foco?
- 6. C#: Detectando qué aplicación tiene foco
- 7. Rieles: ¿Cómo puedo verificar si una columna tiene un valor?
- 8. ¿Cómo puedo verificar si una aplicación se ejecuta en Android?
- 9. ¿Cómo puedo saber si mi servidor tiene NUMA?
- 10. Cómo verificar la escalabilidad de mi aplicación
- 11. Cómo establecer qué control tiene foco en Inicio de aplicación
- 12. ¿Cómo verifica si un widget tiene foco en Tkinter?
- 13. cómo saber si un UITextView tiene un foco o no
- 14. ¿Cómo puedo determinar si mi aplicación de Android tiene pérdida de memoria?
- 15. ¿cómo puedo verificar si existe un archivo?
- 16. Java en una Mac: ¿Cómo puedo detectar cuándo mi aplicación recibe el foco?
- 17. ¿Se rechazará mi aplicación si el icono tiene esquinas redondeadas?
- 18. ¿Cómo puedo verificar mi conexión svn?
- 19. ¿Cómo puedo verificar si un servidor tiene ssl enable o no?
- 20. iOS: ¿cómo verificar si una cadena tiene solo dígitos?
- 21. ¿Cómo puedo saber si mi aplicación PHP usa demasiada memoria?
- 22. ¿Cómo verificar si un modelo tiene una determinada columna/atributo?
- 23. Captura de evento de pulsación de tecla en mi aplicación WPF que no tiene foco
- 24. JavaScript/jQuery: prueba si la ventana tiene foco
- 25. ¿Cómo saber qué ventana tiene foco y cómo cambiarla?
- 26. ¿Cómo puedo verificar si existe un directorio?
- 27. Cómo verificar si un proceso tiene los derechos administrativos
- 28. ¿Cómo puedo verificar si una URL tiene un enlace en botw.org o no?
- 29. ¿Cómo puedo verificar si el teléfono Android se está cargando?
- 30. ¿Cómo puedo verificar si una ventana tiene barras de desplazamiento visibles usando su HWND?