如何使用c#获取第三方应用程序按钮的句柄?

2024-01-10

我正在尝试在第三方应用程序中生成点击事件。首先,我尝试模拟计算器中的点击。这是代码”

IntPtr hwnd = IntPtr.Zero;
IntPtr hwndChild = IntPtr.Zero;
//Get a handle for the Calculator Application main window
hwnd = FindWindow(null, "Calculator");

hwndChild = FindWindowEx(hwnd, IntPtr.Zero, "Button", "1");

//send BN_CLICKED message
SendMessage(hwndChild, BM_CLICK, IntPtr.Zero, IntPtr.Zero);

但使用这段代码我没有得到按钮的句柄。有人可以帮忙吗?还有其他方法可以模拟第三方应用程序上的按钮点击吗?

Thanks.


您的一般方法是正确的,但是您的代码存在两个潜在问题:

  1. FindWindowEx http://msdn.microsoft.com/en-us/library/ms633500%28v=vs.85%29.aspx只查找指定窗口的直接子窗口。计算器按钮可能布置在作为主窗口子窗口的容器窗口中,因此该按钮不会是主窗口的直接子窗口。

  2. 的文档BM_CLICK http://msdn.microsoft.com/en-us/library/bb775985%28v=vs.85%29.aspx说它通过发送鼠标向下和向上消息来模拟单击,因此您可能必须在发送此消息之前激活父窗口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用c#获取第三方应用程序按钮的句柄? 的相关文章

随机推荐