Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Алексей Немиро -

Visual Basic 5.0/6.0 - Система

Все примеры / Система

Как переключиться в любое окно?

Автор: Алексей Немиро | добавлено: 05.03.2010, 16:32 | просмотров: 1058 (1+) | комментариев: 0 | рейтинг: *x5
Пример показывает, как можно найти окно в системе по заголовку и активировать его.

Инструкции

Создайте стандартный EXE-проект. На форме (Form) разместите элемент TextBox и CommandButton. Вставьте ниже следующий код и запустите проект (клавиша F5). В текстовое поле (Text1) введите заголовок, либо часть заголовка, любого окна и нажмите на кнопку (Command1).

Код

Private Declare Function FindWindow _ 
     Lib "user32" Alias "FindWindowA" _ 
     (ByVal lpClassName As String, _ 
     ByVal lpWindowsName As String) As Long 
Private Declare Function SetForegroundWindow _ 
     Lib "user32" (ByVal hwnd As Long) As Long 
Private Declare Function ShowWindow _ 
     Lib "user32" (ByVal hwnd As Long, _ 
     ByVal cCmdShow As Long) As Long 
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 

Private Function GetCaption(lhWnd As Long) As String 
 Dim sA As String, lLen As Long 
 lLen = GetWindowTextLength(lhWnd) 
 sA = String(lLen, 0) 
 GetWindowText lhWnd, sA, lLen + 1 
 GetCaption = sA 
End Function 

Private 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 Command1_Click() 
 Dim lFoundWindow As Long 
 Dim lOK As Long 
 Dim lOK1 As Long 
 Dim X As Variant 
 lFoundWindow = FindWindow(vbNullString, GetCaption(DLHFindWin(Me, Text1, False))) 
 If lFoundWindow = 0 Then 
  MsgBox "Окно не найдено!", vbExclamation 
 Else 
  lOK = SetForegroundWindow(lFoundWindow) 
  lOK1 = ShowWindow(lFoundWindow, 9) 
  lOK1 = ShowWindow(lFoundWindow, 10) 
  lFoundWindow = 0 
  lOK = 0 
  lOK1 = 0 
 End If 
End Sub 

Private Sub Text1_Click() 
 Text1.SelStart = 0: Text1.SelLength = Len(Text1.Text) 
End Sub
Обратите внимание
Язык Visual Basic 6.0 является устаревшим. Многие примеры, размещенные на нашем сайте, были созданы еще во времена Windows 98 и могут не работать в современных операционных системах.
Если у вас возникнут какие-либо проблемы или вопросы, вы можете обратиться за помощью на наш форум.
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики