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

RusFAQ.ru: Программирование на Basic / VBA


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

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

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

Выпуск № 177
от 07.12.2005, 20:39

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


Вопрос № 30657: Здравствуйте ув. эксперты! Нужно узнать когда появится окно с определённым именем! Как это сделать???...

Вопрос № 30.657
Здравствуйте ув. эксперты!
Нужно узнать когда появится окно с определённым именем! Как это сделать???
Отправлен: 02.12.2005, 20:37
Вопрос задал: Dushin Igor (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Залетин Виталий Викторович
Здравствуйте, Dushin Igor!
Можно через определенный промежуток времени перчислять все окна в системе и искать либо по заголовку, либо по имени класса свое. Например, так:

Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long

это функция, которая занимается всей черной работой
---------------------------------------------------------------------------
Public Function EnumWindowsProc (ByVal hwnd As Long, ByVal lParam As Long) As Long
Dim sLength As Long, WinText As String ' Длина строки (текста) в заголовке
Dim RetVal As Long 'Возвращаемое значение (можно и игнорировать)
Dim buffer as String

sLength = GetWindowTextLength(hwnd) + 1 'Длина текста в заголовке найденного окна
If slength > 1 'Если текст в заголовке есть...
buffer = Space(slength) ' Делаем буфер для помещения в него заголовка окна
retval = GetWindowText(hwnd, buffer, slength) 'Получаем текст заголовка
Form1.ListBox.Additem "Окно с номером " & cstr(hwnd) & " имеет заголовок '" & Left$(buffer,slength) & "'"
End If

EnumWindowsProc = 1 'Вернем 1 если все классно. Можно вернуть 0 и тогда больше перечисления не будет
End Function

Теперь вызываем само перечисление:
--------------------------------------------------
Private Sub Command1_Click()
EnumWindows AddressOf EnumWindowsProc, 0
End sub

Вместо заголовка окна можно еще получить имя его класса вот этой функцией:
------------------------------------------------------------------------------------------------------------
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Вызывается аналогично: задайте буфер в 255 символов, передайте его в функцию, и дальше все по аналогии.
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: 9-ый класс)
Отправлен: 03.12.2005, 13:15


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

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

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

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

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


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


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

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

В избранное