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

RusFAQ.ru: Программирование на Delphi


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

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

Выпуск № 866
от 13.07.2007, 01:05

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


Вопрос № 94292: Здравствуйте, уважаемые эксперты. Скажите, есть ли возможность отследить средствами Delphi запуск пользователем к.-л. приложения? Я знаю, есть возможность получить список всех окон, открытых на текущий момент. А есть ли возможность отследить ...

Вопрос № 94.292
Здравствуйте, уважаемые эксперты.
Скажите, есть ли возможность отследить средствами Delphi запуск пользователем к.-л. приложения?
Я знаю, есть возможность получить список всех окон, открытых на текущий момент. А есть ли возможность отследить момент открытия окна? И, естественно, закрытия.

Большое спасибо за помощь.
Отправлен: 07.07.2007, 17:46
Вопрос задал: Omickron (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Градов Юрий Михайлович
Здравствуйте, Omickron!
Можно использовать простой поиск окна по его заголовку функцией FindWindow.
function FindWindow(lpClassName: LPCTSTR; lpWindowName: LPCTSTR): HWND;

1-й параметр - указатель на строку с именем класса окна. Обычно ставим nil - т.к. имя класса нам обычно не известно, а 2-й параметр - указатель на строку с заголовком окна - обязательный параметр.

Расширенная версия FindWindowEx - позволяет искать окна по известному родительскому окну и первому дочернему, после которого надо искать:
function FindWindowEx(hwndParent: HWND; lpzClass: LPCTSTR; lpsz: LPCTSTR): HWND;
---------
Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 07.07.2007, 23:16
Оценка за ответ: 2
Комментарий оценки:
Юрий Михайлович, я говорил, что знаю возможность перечислить все окна, открытые в данный момент. Но для того, чтобы использовать этот метод, нужно очень часто пользоваться этой функцией. Что не есть рационально.

Я спрашивал про возможность отследить появление какого-либо окна сразу же, после его появления. Вроде как написать обработчик этого события.
Возможно, вы не поняли мой вопрос.

Ваш ответ хороший, но это не ответ на мой вопрос, извините.

Отвечает: PGM
Здравствуйте, Omickron!

Я в такой ситуации ставил нук на WH_CALLWNDPROC, и отслеживал сообщения WM_ACTIVATE, WM_SHOWWINDOW, WM_CLOSE, WM_DESTROY, WM_SYSCOMMAND. так как исчезновение окна с экрана, вообще-то не означает его закрытия-уничтожения.
Ответ отправил: PGM (статус: 9-ый класс)
Ответ отправлен: 09.07.2007, 11:21
Оценка за ответ: 4
Комментарий оценки:
Больоше спасибо! Это именно то, что нужно.
Если б ещё кусочек кода или пару ссылочек на мануалы (статьи) по этой теме - было б 5 баллов!

Ещё раз большое спасибо!


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.53 beta от 09.07.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное