Public Sub WorkWithUniFunc()
Dim res As Long
Dim Capt As String 'Заголовок
'Динамический массив байтов для передачи строки заголовка
Dim HandleW As Long 'Описатель окна
'Поиск окна по заголовку
Capt = "Document1 - Microsoft Word"
HandleW = FindWindowA(vbNullString, Capt)
If HandleW > 0 Then 'OK
Debug.Print HandleW
Else: MsgBox ("FindWindowA не может найти окно с заголовком" & vbCrLf & Capt)
End If
'Попытки использовать для поиска Unicode функцию
'FindWindowW не увенчались успехом
' ReDim ArCapt(0 To 2 * VBA.Len(Capt)) As Byte
' ArCapt = Capt & vbNullChar
' Debug.Print ArCapt
' HandleW = FindWindowW(0&, ArCapt(0))
' If HandleW > 0 Then 'OK
' Debug.Print HandleW
' Else: MsgBox ("Не могу вызвать UniCode FindWindowW")
' End If
'Получить заголовок окна
ArCapt = VBA.String$(128, vbNullChar)
res = GetWindowText(HandleW, ArCapt(0), 128)
If res > 0 Then 'OK
Debug.Print ArCapt
Else: MsgBox ("не получен заголовок окна")
End If
'Изменить заголовок окна
Capt = "NewDoc"
ArCapt = Capt & vbNullChar
res = SetWindowText(HandleW, ArCapt(0))
'Повторно получить заголовок окна
ArCapt = VBA.String$(128, vbNullChar)
res = GetWindowText(HandleW, ArCapt(0), 128)
If res > 0 Then 'OK
Debug.Print ArCapt
Else: MsgBox ("не получен заголовок окна")
End If
End Sub
|
Пример 6.5. |
| Закрыть окно |