如何解决如何从 Excel 中监控 Word 的启动?
我正在尝试识别 Word 是否是从 Excel 启动的。
问题似乎是导致错误的 Word-Splash。如果函数是在 Word 启动之后启动的,则它可以正常工作。
Function FindyEdByClass() As iuiAutomationElement
Dim oUIAutomation As New CUIAutomation
Dim oUIADesktop As iuiAutomationElement
Dim allChilds As iuiAutomationElementArray
Dim oUIAWord As iuiAutomationElement
Dim i As Integer
Dim Timer As Date
Set oUIADesktop = oUIAutomation.GetRootElement
Set oUIAWord = oUIADesktop
Timer = Now
RestartLoop:
Set allChilds = oUIADesktop.FindAll(TreeScope_Children,oUIAutomation.CreateTrueCondition)
Debug.Print "StartLoop" & vbCrLf;
For i = 0 To allChilds.length - 1
If allChilds.GetElement(i).CurrentName Like "*Word*" Then
'And allChilds.GetElement(i).CurrentClassName = "SunAwtFrame" Then
Set oUIAWord = allChilds.GetElement(i)
End If
Next
If Now() > (Timer + TimeValue("00:00:15")) Then GoTo Noword
If oUIAWord.CurrentName Like "DesktoP*" Then GoTo RestartLoop
EndOFLoop:
Debug.Print oUIAWord.CurrentName & " " & oUIAWord.CurrentClassName & vbCrLf;
Set FindyEdByClass = oUIAWord
Exit Function
Noword:
Debug.Print "No Word found"
End
End Function
For Next 循环中发生错误:
For i = 0 To allChilds.length - 1
**If allChilds.GetElement(i).CurrentName Like "*Word*" Then**
Set oUIAWord = allChilds.GetElement(i)
End If
Next
是否有修复或更好的方法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。