关于截获COPY,PASTE消息的钩子

chengjr 2004-11-21 03:34:51
这个问题我已经郁闷一个礼拜了:-(,具体情况如下:
1.我需要截获用户任何时候对任意文件的copy paste操作,并把其记录成xml文档。
现在通过截获WM_COPY,WM_PASTE消息和OleSetClipBoard OleGetClipBoard SetClipboardData
GetClipboardData等API基本已经实现截获用户的任何copy paste操作,但分析后发现截获的信息远比
用户的操作要多,例如:打开一个word文档时(现在用户还未进行任何操作)就截获了许多上面4个API
调用,而且由于word等office软件实现了自己的剪贴板,导致用户copy任何文件时word都会调用GetClipboardData等得到系统剪贴板的东西来填充自己的简帖版。
请问如何才能过滤掉这些伪操作信息,使截获的信息和用户操作更好的对应起来。
2.我有一个进程的ID和主窗口的HWND,如何才能得到他所打开的文件的绝对路径

我分不多,尽量给了:)

...全文
390 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxy2003 2004-12-29
  • 打赏
  • 举报
回复
..
liutaoxwl 2004-12-28
  • 打赏
  • 举报
回复
ICopyHook
不能拦截,但是当有操作的时候他可以通知你
chengjr 2004-12-28
  • 打赏
  • 举报
回复
最后顶一次
准备结束这个古老的话题:(((
chengjr 2004-12-19
  • 打赏
  • 举报
回复
eunt,如果用户选择菜单里面的copy,paste不就抓不到了吗
SetClipboardViewer只能监视到copy操作吧
这个月实在是见识了office的那一套东西是多么bt了,很多别的程序能用的方法对他们都无效:(((
eunt 2004-12-18
  • 打赏
  • 举报
回复
1.用SetClipboardViewer监视剪贴板
2.监视快捷健,一般是ctrl+c,ctrl+v
如果程序自己实现剪贴板的话就不太好弄了。不同程序不同的实现方法,要具体分析了。
chengjr 2004-12-18
  • 打赏
  • 举报
回复
发了一个月了 haha
真的没人做过?
chengjr 2004-12-12
  • 打赏
  • 举报
回复
50分对我不是小数目,现在都不知道给谁好:(((
chengjr 2004-12-12
  • 打赏
  • 举报
回复
如果知道这些都没用的话,需要那些东西呢.总之目的就是得到aaa.doc的绝对路径
大家随便讨论吧,这个贴发了这么久都没找到答案:(
现在的项目我只是得到了文件名,而不是绝对路径
oyljerry 2004-12-12
  • 打赏
  • 举报
回复
word打开了aaa.doc,如何在知道word的绝对路径和进程id和主窗口句柄的前提下,
得到aaa.doc的绝对路径
~~~~这个没什么关系吧,能得到?
chengjr 2004-12-04
  • 打赏
  • 举报
回复
再顶。。。
gloomyfish 2004-12-02
  • 打赏
  • 举报
回复
bang ni up~~~~~~
chengjr 2004-12-02
  • 打赏
  • 举报
回复
发贴10天了,回来再顶
chengjr 2004-11-27
  • 打赏
  • 举报
回复
自己顶,我就不信知道的人都不告诉我555
chengjr 2004-11-25
  • 打赏
  • 举报
回复
大家不会都误会了吧
我的意思是能得到进程所打开的文件的绝对路径,而不是进程exe文件的绝对路径
比如word打开了aaa.doc,如何在知道word的绝对路径和进程id和主窗口句柄的前提下,
得到aaa.doc的绝对路径
大侠们,救命啊。这个是偶在csdn的处女贴,居然就没人能有一个满意的答复555
oyljerry 2004-11-25
  • 打赏
  • 举报
回复
GetModuleFileName获得本进程绝对路径
其他进程不可一
aoosang 2004-11-25
  • 打赏
  • 举报
回复
GetModuleFileName可以获得本进程的绝对路径,但是对其他进程是否可以这么用,不知道
chengjr 2004-11-25
  • 打赏
  • 举报
回复
没人理我,只好自己顶一下了:(((
chengjr 2004-11-23
  • 打赏
  • 举报
回复
你没看懂我的问题吧,2个回答都不是我要的:(
1。我要截获所有进程的COPY PASTE消息,怎么能通过来源进程过虑?
2。GetModuleFileName是得到应用程序名,不是得到它所打开的文档绝对路径

请路过的高手尽量详细回答一下
danyueer 2004-11-22
  • 打赏
  • 举报
回复
1 可以通过判断消息的来源进程来进行过滤

2 GetModuleFileName

15,472

社区成员

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

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