'Данный пример покажет, как можно по любому куску текста заголовка 'определить номер процесса в системе, и по этому номеру можно определить 'полный заголовок окна
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
Public Function GetCaption(lhWnd As Long) As String Dim sA As String, lLen As Long
lLen = GetWindowTextLength(lhWnd) sA = String(lLen, 0) Call GetWindowText(lhWnd, sA, lLen + 1) GetCaption = sA End Function
Public Function DLHFindWin(frm As Form, WinTitle As String, CaseSensitive As Boolean) As Long Dim lhWnd As Long, sA As String
lhWnd = frm.hwnd Do DoEvents If lhWnd = 0 Then Exit Do If CaseSensitive = False Then sA = LCase(GetCaption(lhWnd)) WinTitle = LCase(WinTitle) Else sA = GetCaption(lhWnd) End If If InStr(sA, WinTitle) Then DLHFindWin = lhWnd Exit Do Else DLHFindWin = 0 End If lhWnd = GetNextWindow(lhWnd, 2) Loop End Function
Private Sub Form_Load() 'вместо слова internet напиши любое слово или выражение, 'содержащее в заголовке окна, которое вы ищете Call MsgBox(DLHFindWin(Me, "internet", False)) Call MsgBox(GetCaption(DLHFindWin(Me, "internet", False))) 'ПРИМЕЧАНИЕ: вы можете использовать в вашей программе как первую, так 'и вторую строку End Sub
Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Найти любое окно по любому куску текста заголовка", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!