Вопрос № 91543: Здравствуйте уважаемые эксперты!!!У меня вопрос: как с помощью функций WIN API найти и закрыть окно другого процесса, т.е. указывается имя искомого окна?Заранее благодарна:)...
Вопрос № 91.543
Здравствуйте уважаемые эксперты!!!У меня вопрос: как с помощью функций WIN API найти и закрыть окно другого процесса, т.е. указывается имя искомого окна?Заранее благодарна:)
Отправлен: 15.06.2007, 19:27
Вопрос задала: Anomaly (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: PGM
Здравствуйте, Anomaly!
1. Найти - H := FindWindow(<класс окна>, <заголовок>) - что известно, то и используйте, если нашли H <> 0
2. Закрыть - корректно отрабатывается обычно PostMessage или SendMessage(H, WM_SYSCOMMAND, SC_CLOSE, 0), если не хочет закрываться, то можно и DestroyWindow, но это может вызвать ошибки в закрываемом приложении.
Ответ отправил: PGM (статус: 8-ой класс)
Ответ отправлен: 16.06.2007, 00:02 Оценка за ответ: 5
Отвечает: Korolyov Alexandr
Здравствуйте, Anomaly!
Есть такая функция FindWindow (ClassName, WindowName) - но по мимо имени окна нужно знать и название класса окна, да еще название окна может меняться во время исполнения.
Другой путь - EnumWindows (Enum_Proc: Процедура; LParam: LParam) : Boolean – перечисляет все окна в системе, функция обратного вызова.
С помощью этой функции можно перебрать все окна в системе (в приложении пример).
Приложение:
--------- Читайте help
Ответ отправил: Korolyov Alexandr (статус: 3-ий класс)
Ответ отправлен: 16.06.2007, 00:17 Оценка за ответ: 5