Word Automation и таблица бегущих объектов - PullRequest
1 голос
/ 01 сентября 2009

Я использую ROT для поиска активных экземпляров MSWord. В некоторых версиях word документ не регистрируется в таблице, вместо этого он регистрируется как шаблон NORMAL, и поэтому я не могу найти документ по его названию, как описано в Microsoft. Кто-нибудь знает исправление для этого?

1 Ответ

0 голосов
/ 01 сентября 2009

Является ли FindWindowPartial API чем-то полезным для вас? Это позволит вам искать окна с Microsoft Word в заголовке.

Option Explicit

Private Const GW_HWNDNEXT = 2
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Function FindWindowPartial(ByVal Title As String) As String
    Dim hWndThis As Long

    hWndThis = FindWindow(vbNullString, vbNullString)
    While hWndThis
        Dim sTitle As String, sClass As String
        sTitle = Space$(255)
        sTitle = Left$(sTitle, GetWindowText(hWndThis, sTitle, Len(sTitle)))
        If InStr(sTitle, Title) > 0 Then
            FindWindowPartial = sTitle & "|" & FindWindowPartial
        End If
        hWndThis = GetWindow(hWndThis, GW_HWNDNEXT)
    Wend
End Function
...