Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 99
от 07.07.2005, 13:20

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 2


Вопрос № 22978: Здравствуйте. Для определения хэндла активного окна использую GetForegroundWindow, но при активизации некоторых окон возникает ошибка и программа закрывается. Если использовать обработку исключительных ситуаций (Delphi7), то программа со всеми ок...

Вопрос № 22.978
Здравствуйте.
Для определения хэндла активного окна использую GetForegroundWindow, но при активизации некоторых окон возникает ошибка и программа закрывается. Если использовать обработку исключительных ситуаций (Delphi7), то программа со всеми окнами работает некорректно. Подскажите пожалуйста как это исправить или какой еще функцией можно воспользоваться.
Заранее благодарен.
Отправлен: 02.07.2005, 13:10
Вопрос задал: Ivaan (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Залетин Виталий Викторович
Здравствуйте, Ivaan!
Можно еще испоьзовать {Get}WindowFromРoint - она вернет хэндл окна под мышью. Мой совет: поройтесь на сайте http://www.vb.kiev.ua/ref/w32api/. Я понимаю, что сайт посвящен Visual Basic, но при желании можно все перевести, тем более, что справочник по АПИ там приличный.
Ответ отправил: Залетин Виталий Викторович (статус: 1-ый класс)
Отправлен: 02.07.2005, 13:28

Отвечает: Ерёмин Андрей
Здравствуйте, Ivaan!
Для определения хэндла (handle) активного окна можно воспользоваться следующими функциями:
GetForegroundWindow() - возвращает handle окна, которое является активным в данный момент.
GetFocus() - возвращает handle окна, которое в данный момент имеет фокус ввода с клавиатуры.
GetActiveWindow() - возвращает handle активного окна.
Если при использовании этих функций возникает программное исключение (exception) или выдаётся неверный результат, можно пойти таким путём: если одна из функций дала неверный результат, то пробуем другой функцией, затем третьей. Наверное, это близко к истине. Кроме того, любой handle не может быть меньше 32. Пример кода в приложении (писал из головы, если что неточно, прошу простить). Удачи!

Приложение:

---------
Если б не было бы глюка, жизнь была б такая скyка...

Ответ отправил: Ерёмин Андрей (статус: Студент)
Отправлен: 04.07.2005, 07:31


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.winapifaq
Отписаться
Вспомнить пароль

В избранное