监控Windows用户操作的最佳方法?

hacker47 2008-03-01 11:51:06
大家好:
感谢您为这个帖子耽误您宝贵的时间,最近本人在进行一个软件的设计,涉及到几种技术的取舍,希望熟悉的朋友给点建议。

问题是这样的:
这个软件要记录下用户的手工操作,比如点击菜单,输入文本,选择列表项目等等,要求是必须全部记录下来(包括鼠标和键盘),并且能够转换成文字描述,类似于下面这种格式:

run program "program1"
click menu "menu1"
input "hello"
click toolbar "split"
select listitem "listitem1"

目前我已经自己测试了两种方式:
1、Active_Accessibility 简称MSAA,但是这项技术的局限性在于不是所有的程序都支持,有一些控件就不支持,因此无法记录下信息。
2、直接使用全局Windows钩子,缺点是复杂性非常大。

现在问题是,我应该采取哪种技术实现这个问题,抑或还有其他更好的方式,我根本就不知道,这样的话请大家一定给我一些小小提示,只要搜索关键字就可以了。

谢谢你们。
...全文
181 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hacker47 2008-03-02
  • 打赏
  • 举报
回复
谢谢回复,除了钩子还有没有其他的解决方案呢?
cnzdgs 2008-03-02
  • 打赏
  • 举报
回复
全局Windows钩子是最简单的了。
hacker47 2008-03-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 r_swordsman 的回复:]
你找错地方了..你应该找ms...有接口的
[/Quote]

愿闻其详细。
scq2099yt 2008-03-02
  • 打赏
  • 举报
回复
我也支持钩子
r_swordsman 2008-03-02
  • 打赏
  • 举报
回复
你找错地方了..你应该找ms...有接口的
china_bai 2008-03-02
  • 打赏
  • 举报
回复
支持采用全局钩子的做法。

要实现lz的目的,最好就是捕获各种消息的方法。

这样才能一个都不漏过。

不过,可能会有性能上的损失。
r_swordsman 2008-03-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hacker47 的回复:]
引用 5 楼 r_swordsman 的回复:
你找错地方了..你应该找ms...有接口的


愿闻其详细。
[/Quote]

找ms问啊...问我也不会啊?

或者你hook所有api..
cnzdgs 2008-03-02
  • 打赏
  • 举报
回复
你要得到的是各种消息,所以其它方法也基本上都是用Hook的原理,例如替换窗口类的WindowProc、Hook GetMessage等。
菜牛 2008-03-01
  • 打赏
  • 举报
回复
全局Windows钩子

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧