处理按钮单击另一个应用程序

时间:2011-08-30 11:59:06

标签: c# winapi

我正在寻找一种获取按钮按下事件的方法,类似于this,用于在触发事件后立即检索指针。我指的按钮位于我设置为目标的任何特定窗口应用程序上(例如Windows媒体播放器的播放按钮)。如果您在点击“播放”按钮后立即知道要捕获的消息。

2 个答案:

答案 0 :(得分:3)

您正在寻找的是Global Mouse Hook。您可以查看以下文章:Processing Global Mouse and Keyboard Hooks in C#

处理CLICK事件后,您可以使用API​​函数在光标(WindowFromPoint)下获取应用程序/控件。

这是另外一篇包含代码示例的文章,可以帮助您:.NET Object Spy and InvokeRemote(这类似于spy ++)

如果不使用Windows原生方法,则无法执行此操作。

答案 1 :(得分:1)

用户在winapi中对此进行了标记。他可能已经知道了钩子。 HABJAN回复的一部分指向了正确的方向。问题的答案是:使用Spy ++ 我认为没有点击"按钮的消息"或者" url链接点击"但如果你观察一个带有spy ++的程序,你会看到那些UI通知消息,如:WM_CAPTURECHANGED,WM_CHANGEUISTATE甚至WM_POSCHANGING。我认为这些是您正在寻找的信息。

另一种方法可能是使用AutomationElement,请参阅以下答案:Getting the current tab's URL from Google Chrome using C#

PS:如果我可以将另一个用户的编辑投票给一个问题,我就会用Dyppl的编辑方式投票...问题使用了非常精确的单词:"得到消息"而不是"处理"在标题中。 PS2:这是一个老问题,但我之前问过同样的问题并在谷歌上遇到过它,也许我的答案会帮助某人