我正在开发一个c#应用。我正在寻找一种方法来监控第三方应用程序中的不同事件。
示例1:计算器正在运行,我想知道用户何时点击了"="按钮。例2:Skype正在运行,我想监控用户点击"呼叫"按钮的时间。例3:Word正在运行,我想监视用户何时打开"字体"下拉列表。
我不是在寻找简单的鼠标或键盘事件。
看一下EventSpy,这两个都可以做你需要的。
http://www.codeproject.com/Articles/11918/EventSpy http://eventspy.codeplex.com/你基本上需要进入"Windows Messaging"循环。为了正确过滤GAZILLION消息,你还需要能够定期扫描所有的活动窗口,看看哪些(如果有的话)是与你相关的。请注意,整个窗口子系统是一个巨大的安全漏洞。(自从NT4/W95/W98之后,我就没怎么用过它了,所以他们可能从那时起就试图"保护"它,所以它可能比以前更难进入。你将需要一个好的想法/第三方工具来帮助你开始你的方式有一些想法,你正在寻找什么。
在"以前"的生活中,我们使用这种基本技术来获得约4,000个工作站安装自己的软件,更新,补丁等,通过监视某些窗口,控件等的存在,并将消息"注入"到windows消息传递循环中以控制应用程序安装程序,配置更改未存储在注册表中,等等…