通过VBA中的句柄将对象延迟绑定到现有实例
此问题与VBA Internet Explorer自动化有关 我拥有的是一个Internet Explorer窗口,当页面加载时,它会加载一个带有按钮的对话框 以下是赠品:通过VBA中的句柄将对象延迟绑定到现有实例,vba,internet-explorer,modal-dialog,late-binding,Vba,Internet Explorer,Modal Dialog,Late Binding,此问题与VBA Internet Explorer自动化有关 我拥有的是一个Internet Explorer窗口,当页面加载时,它会加载一个带有按钮的对话框 以下是赠品: 该对话框属于“Internet Explorer\u TridentDlgFrame”类 它不像最初的IE窗口那样被视为应用程序窗口 它的“表单”和“按钮”ID是可获得的,但不在原始IE文档的DOM中 因此,引用所述ID与之交互不起作用 类似地,将JavaScript附加到按钮上也不起作用 无法通过关闭对话框来绕过它。必须按
非常感谢您的帮助!谢谢!*仅当窗口支持时,才通过句柄*将“对象A”后期绑定到对话框窗口。据我所知,只有Richedit窗口支持它。Explorer的ShellWindows找到它了吗。
Set objShell=CreateObject(“Shell.Application”)
和为所有窗口中的每个窗口设置AllWindows=objShell.Windows
和和msgbox window.locationname
和next
。这是我尝试的第一个方法。但是我找到了一个确实定位对话框弹出窗口的示例:。但我仍然坚持使用这个示例延迟绑定代码的方式,即与后期绑定甚至COM无关。这是Windows上Windows的Windows API接口。它还使用一种旧的非推荐方式来查找只查找第一个窗口的窗口(即findwindoww()
,而不是EnumWindows
)。如果您的按钮是按钮窗口(FindWindowsEx()
将找到它们)然后,您可以使用SendMessage()通过Windows消息向他们发送单击消息
API调用。我在另一个程序中嵌入了一些示例代码,该程序列出了系统上的所有窗口。它给出的输出如下Order Level WindowText ClassName HWnd ParentHWnd ProcessID ParentProcessID ThreadID ModuleNameHWin EXENameProcess
和198 0最新的“批处理文件或vbscript或cmd”问题-堆栈溢出-Internet Explorer选项卡ThumbNailWindow 6292800 6423328 5432 6488 6820«不可用错误=126»iexplore.exe
您有使用findwindowsEx()单击按钮