如何以编程方式单击Powerbuilder中的Enter键

时间:2018-05-10 15:32:59

标签: powerbuilder

我有一个ole对象浏览器,我打开的网站有一个弹出消息框,我想以编程方式触发enterkey自动关闭消息框。

2 个答案:

答案 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