Страница: 1 |
В каком либо цикле (напр. Do... Loop) вызываем функцию FindWindow (вот прототип: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long). Она вернет дескриптор на окно и далее делай с ним что хочешь. Например его можно скрыть десктоп Public Sub Desktop(ByVal Visible As Boolean) Вот прототипы остальных функций и констант: Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long в коде модуля пишешь: Declare Function GetTopWindow Lib "User32" (ByVal hWnd As Long) As Long Public Function GetWindowHandle(txt As String) As Long у меня работает... Удачи!!! Страница: 1 |
Вопрос: Поиск окошка в системе
Добавлено: 14.07.03 14:05
Автор вопроса: oleg-ff
У меня такой вопрос. Как сделать так чтобы моя программа могла периодически просматривать окошки в системе и находить нужное
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
.:: St!X ::.
ICQ: 339888425
Вопросов: 13
Ответов: 51
Web-сайт:
Профиль | | #1
Добавлено: 14.07.03 15:32
Dim hWnd As Long
hWnd = FindWindow("Progman", "Program Manager")
If Visible Then
ShowWindow hWnd, SW_SHOW
Else
ShowWindow hWnd, SW_HIDE
End If
EnableWindow hWnd, Visible
End Sub
Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, ByVal fEnable As Long) As Long
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
Номер ответа: 2
Автор ответа:
oleg-ff
Вопросов: 13
Ответов: 4
Профиль | | #2
Добавлено: 15.07.03 11:57
Тогда встает следующий вопрос. В функции FindWindow второй параметр lpWindowName - указывает на точный заогловок окна, а что делать скажем, если мне надо отлавливать окно у которого лишь часть заголовка не меняется а остальная меняется от случая к случаю. Как это можно реализовать
Номер ответа: 3
Автор ответа:
Banzoy
Вопросов: 5
Ответов: 8
Профиль | | #3
Добавлено: 15.07.03 13:40
Declare Function GetWindowText Lib "User32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindow Lib "User32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Declare Function IsWindowVisible Lib "User32" (ByVal hWnd As Long) As Long
Declare Function IsWindow Lib "User32" (ByVal hWnd As Long) As Long
'поиск окна по контексту "txt"
On Error Resume Next
Dim WindowText As String, lt As Long
Handle = GetTopWindow(0)
If Handle > 0 Then
Do While Handle <> 0
WindowText = Space(256): lt = GetWindowText(Handle, WindowText, 255)
WindowText = Left$(WindowText, lt)
If IsWindowVisible(Handle) <> 0 And IsWindow(Handle) <> 0 And InStr(1, WindowText, txt, 1) > 0 Then Exit Do
Handle = GetWindow(Handle, 2)
Loop
End If
GetWindowHandle = Handle
End Function