我有一个ole对象浏览器,我打开的网站有一个弹出消息框,我想以编程方式触发enterkey自动关闭消息框。
答案 0 :(得分:2)
如果是消息框,您可以尝试发送(32770,16,0,0),其中“16”是WM_CLOSE的十进制值,“32770”是消息框的句柄。
答案 1 :(得分:1)
因为它在OLE中的功能我认为您需要通过OLE API控制该对话框,如果没有您需要的工具 - 唯一的另一种方法是将OLE“直接”转到Windows。
因此,对于大多数Windows编程语言而言,答案可能是相同的 - 如果您没有足够大的受众单独依赖PowerBuilder标记。最大的问题是你知道那个对话的标题吗?
这个想法与点击任何基于网络的对话框窗口上的按钮没什么不同,后者打开了一个“正确或错误的困境”,并确保你出于正确的理由这样做。
PB特定部分将定义外部函数,如:
PUBLIC FUNCTION unsignedlong FindWindow (long &
classname, string windowname) LIBRARY "user32.dll" &
ALIAS FOR FindWindowW
然后添加代码以使用它:
unsignedlong hwnd
hwnd = FindWindow( 0, "Window Title if known if not hahaha" )
if hwnd = 0 then
// fml^2 ("fml squared" originated here now- shared conscious test #1 )
else
// Yes! Now we have the Windows API, or Post, Send might work fine.
// Send(hwnd, 273, 0, Handle(cb_OK)) or similar
end if