Что я хочу сделать, это проверить, имеет ли мое приложение фокус, потому что, если это не так, я вывожу окно предупреждения поверх области уведомлений, чтобы отобразить какое-либо сообщение конечному пользователю.Как проверить, имеет ли мое приложение фокус?
ответ
Позвоните Windows.GetForegroundWindow()
, а затем передайте HWND
в функцию Controls.FindControl()
. Он вернет указатель non-nil TWinControl
, если HWND
принадлежит вашему процессу. Например:
if FindControl(GetForegroundWindow()) <> nil then
// has focus ...
else
// does not have focus ...
Если приложение состоит из одной формы, а затем
GetForegroundWindow = Handle
будет достаточно. Вышеприведенное выражение истинно тогда и только тогда, когда ваша форма является окном переднего плана, то есть если фокус клавиатуры относится к элементу управления этой формы (или к самой форме).
Если ваша заявка состоит из нескольких форм, просто проведите через них и проверьте, соответствует ли какой-либо из них GetForegroundWindow
.
Небольшое изменение в ответ Remys является:
Var
Win: TWinControl;
Begin
Win := FindControl(GetForegroundWindow);
if Win <> nil then
// StringGrid1.Row :=5;
// StringGrid1.SetFocus;
компилируется нормально для меня, но я нашел его ненадежным во время отладки, то stringgrid.setfocus вызывается даже когда окно ISN» t сфокусировано, вызывая ошибку.
D2007 имеет это полезное свойство
if Application.Active then
//
- 1. Как проверить, имеет ли фокус фокус?
- 2. проверить, имеет ли кнопка фокус
- 3. Как проверить, имеет ли функция AutomationElement фокус?
- 4. Как проверить, имеет ли определенный процесс фокус?
- 5. Как проверить, имеет ли конкретный контроль фокус?
- 6. JavaScript/jQuery: проверить, имеет ли окно фокус
- 7. Как проверить, оценил ли пользователь мое приложение
- 8. Мое приложение теряет фокус при закрытии окна
- 9. Проверьте, имеет ли SWF фокус
- 10. Как проверить, имеет ли мой Element ID фокус?
- 11. Как проверить, имеет ли виджет фокус в Tkinter?
- 12. Как проверить, имеет ли вход фокус в структуре if?
- 13. Как проверить, действительно ли текстовое поле активно или имеет фокус?
- 14. Какое приложение имеет фокус клавиатуры?
- 15. C#: определение того, какое приложение имеет фокус
- 16. Определите, имеет ли фокус формы фокус
- 17. Как проверить мое приложение на симуляторе клиента
- 18. сервера, чтобы проверить мое приложение
- 19. Как проверить мое приложение на iOS 8?
- 20. Как проверить, где мое приложение использует IDFA
- 21. Java на Mac: как определить, когда мое приложение получает фокус?
- 22. Есть ли способ проверить, действительно ли пользователь, установивший мое приложение, действительно установил мое приложение?
- 23. Как проверить метод, который запускает мое приложение?
- 24. Проверьте, имеет ли объект фокус
- 25. Как проверить, поддерживает ли мое приложение iOS 4.3 или нет?
- 26. Как проверить, является ли мое приложение формой активации Windows
- 27. Graph Api: Как проверить, использует ли пользователь мое приложение
- 28. Как проверить, установлено ли мое приложение на клиентской машине?
- 29. Как проверить, может ли мое приложение создать символическую ссылку?
- 30. Как проверить, подключено ли мое приложение к Facebook или нет?