Public Sub WorkWithWindows() Dim Res As Long 'Результат выполнения функции Dim HandleAW As Long 'Описатель активного окна Dim RectAW As RECT 'Структура, задающая прямоугольник окна Dim TextAW As String 'Заголовок активного окна Dim LenTextAW As Long 'Длина строки Dim HandleW As Long 'Описатель окна Dim TextW As String 'Заголовок окна 'Получить описатель активного окна HandleAW = GetActiveWindow Debug.Print HandleAW 'Получить прямоугольник, задающий положение активного окна Res = GetWindowRect(HandleAW, RectAW) Debug.Print Res If Res > 0 Then 'OK Debug.Print "Размеры окна: Left = ", RectAW.Left, " Top = ", _ RectAW.Top, " Right = ", RectAW.Right, " Bottom = ", RectAW.Bottom Else: MsgBox ("Не удалось получить размеры активного окна") End If 'Получить заголовок окна 'Предварительная набивка результирующей строки нулевыми символами TextAW = VBA.String$(255, vbNullChar) LenTextAW = VBA.Len(TextAW) Res = GetWindowText(HandleAW, TextAW, LenTextAW) Debug.Print Res If Res > 0 Then 'OK TextAW = VBA.Left(TextAW, VBA.InStr(1, TextAW, vbNullChar) - 1) Debug.Print TextAW Else: MsgBox ("Не удалось получить заголовок активного окна") End If 'Поиск окна документа по его заголовку 'Возвращается описатель окна TextW = "DocOne6 - Microsoft Word" HandleW = FindWindow(vbNullString, TextW) If HandleW > 0 Then 'OK Debug.Print HandleW Else: MsgBox ("Не удалось найти окно с указанным заголовком" _ & vbCrLf & TextW) End If 'Минимизация и нормализация окна документа Res = ShowWindow(HandleW, SW_SHOWMINIMIZED) If Res > 0 Then Debug.Print "Окно минимизировано" Res = ShowWindow(HandleW, SW_SHOWNORMAL) If Res > 0 Then Debug.Print "Окно в нормальном состоянии" 'Изменение заголовка окна TextW = "Document1 - Microsoft Word" HandleW = FindWindow(vbNullString, TextW) If HandleW > 0 Then 'OK Debug.Print HandleW Else: MsgBox ("Не удалось найти окно с указанным заголовком" _ & vbCrLf & TextW) End If Res = SetWindowText(HandleW, "DocTwo6 - Microsoft Word") End Sub |
Пример 6.2. |
Закрыть окно |