【发布时间】:2011-05-25 04:41:42
【问题描述】:
我尝试使用以下方法点击按钮:
private const int BN_CLICK = 0xF5;
private const uint WM_LBUTTONDOWN = 0x0201;
private const uint WM_LBUTTONUP = 0x0202;
SendMessage(sendButton, BN_CLICK, IntPtr.Zero, IntPtr.Zero);
SendMessage(sendButton, WM_LBUTTONDOWN, IntPtr.Zero, IntPtr.Zero);
SendMessage(sendButton, WM_LBUTTONUP, IntPtr.Zero, IntPtr.Zero);
以上所有都无法点击按钮,所以我想知道我有其他选择,或者是否可以从它的处理程序中获取按钮位置 X 和 Y?
建议,想法会非常好。
【问题讨论】:
-
请问其他程序是什么?我也遇到过需要单击另一个应用程序中的按钮,例如:使用 Outlook 发送电子邮件会弹出一个烦人的安全对话框“另一个程序正在尝试发送电子邮件......”并单击以编程方式看起来很狡猾的按钮,不可靠并且战斗用鼠标控制用户。相反,我选择购买一个克服了 Outlook 对话框的组件,这对你来说是一个选择吗?否则,您可以在这里找到问题的答案:msdn.microsoft.com/en-us/library/ms171548.aspx
-
@Jeremy 这是一个自制的 Lan House 控件,将所有消息发送到应用程序的调试窗口,我正在过滤这些消息。例如,当检测到被阻止的网站时,我可以选择单击按钮来锁定站点。所以我正在制作一个过滤这些消息的应用程序,如果它找到一些特定的消息,它会采取行动并单击按钮。我已经通过 msdn 和这里的其他几个回复,我的问题不是模拟鼠标或键盘,而是找到按钮的位置来完成这样的任务,如果可能的话完全在后台。
-
不,我没有它的源代码,开发它的人也完全没有了。
标签: c# controls location mouseclick-event