Войти

Показать полную графическую версию : Найти открытые окна по маске и закрыть их!


Ууух
21-06-2016, 16:51
Доброго дня всем! Подскажите новичку. Заморочился такой проблемкой - надо найти и закрыть все окна, в названии которых содержится слово "Блокнот". Сделал так:

Sub CloseApp() 'находит окно и закрывает его
Dim lngHwnd As Long
Dim lngReturn As Long

lngHwnd = FindWindow(vbNullString, "* - Блокнот") 'не находит окна, возвращает нуль
lngReturn = PostMessage(lngHwnd, WM_CLOSE, 0&, 0&)

End Sub

если название окна указать полностью, то всё работает прекрасно, но при попытке найти окно по маске ничего не получается. Как сделать поиск по маске? Если циклом, то как перебрать все открытые окна?
:wall:

Iska
21-06-2016, 17:25
надо найти и закрыть все окна, в названии которых содержится слово "Блокнот". »
Неудачное решение. Хотите закрыть Блокноты — ищите окна по классу, а не заголовку.

Как сделать поиск по маске? Если циклом, то как перебрать все открытые окна? »
Начните хотя бы отсюда:
www.ПЕРВЫЕ ШАГИ.ru :: 1.27.1.22 Функция FindWindow (http://www.firststeps.ru/mfc/winapi/win/r.php?69)
www.ПЕРВЫЕ ШАГИ.ru :: 1.27.1.20 Функция EnumWindows (http://www.firststeps.ru/mfc/winapi/win/r.php?67)

NickM
21-06-2016, 17:30
А готовым (http://www.pbdr.com/vbtips/api/FindCloseAPI.htm) примером воспользоваться не хотите, с применением API? Или обязательно изобрести Свой велосипед?

Iska
21-06-2016, 19:32
А готовым примером воспользоваться не хотите, с применением API? Или обязательно изобрести Свой велосипед? »
Возможно, проблема с английским. Возможно, неумение правильно сформулировать запрос в поисковик. Мало ли…

Ууух
22-06-2016, 16:09
За готовый велосипед спасибо. Буду разбираться.




© OSzone.net 2001-2012