一个实用的小程序却无从下手 这个似乎不可能的,截获ctrl + c可以,但是软件中复制的动作呢,如何截获如何识别剪贴板可以通过程序访问,不通过剪贴板的复制呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以这样,因为不管什么操作都是通过调用api完成的,监控那些能够实现复制文件的api应该可以达到效果.至于怎么实现监控api这个就复杂了,你可以搜索一下,是可以实现的,实际上内存泄漏的工具就是监控那些分配内存的api做到的. 有一个API叫什么SetViewChange(名字我不记得准确了),可以检测剪贴板,需要的话你自己查去,能够在剪贴板变化的第一时间得到通知 检测剪贴板是否有数据,MSDN上面API里面的输入那里有详细的介绍。 没做过,但是感觉应该用 api hook 。但是如楼上所说,不一定都是文本。可以用 Detours 库 参考:http://www.freewebs.com/wangxinwei/apidetour/APIDetour3.htm 用API HOOK,HOOK 拷贝和粘贴操作,就可以咯 回复人:qhgary(Gary) ( 五级(中级)) 信誉:100 2007-2-27 16:33:37 得分:0? 可以这样,因为不管什么操作都是通过调用api完成的,监控那些能够实现复制文件的api应该可以达到效果.至于怎么实现监控api这个就复杂了,你可以搜索一下,是可以实现的,实际上内存泄漏的工具就是监控那些分配内存的api做到的.-------------------------------------------------不管什么操作都是通过读写内存来的,不如对所有的内存操作都作监视好了 为什么我的vc++不能够安装msdn啊 window已经提供机制了:剪贴板查看器链。一个典型的观察者模式。只要把自己的窗口注册到这个链中,将来只要剪贴板内容有所改变就可以得到通知。然后随你怎么做。http://nipcdll.bokee.com/2552535.html 相当同意 shan_ghost() 的思路,具体内容可查看<<windows程序设计>>中的相应章节,另外,剪贴板中的内容类型是可识别的 如果是shell的复制操作,那么会有通知的. 当一个程序的意图是成为一个剪贴板查看器时必须在WM_CREATE函数中调用SetClipboardViewer()函数,这个函数的返回值是剪贴板查看器链中的上一个剪贴板查看器的窗口句柄,这个窗口句柄应该被保存在一个静态变量当中。同时在调用这个函数以后当前窗口变成了当前剪贴板查看器。 当剪贴板查看器被结束时,也就是在处理WM_DESTROY消息中我们应该把当前程序从剪贴板查看器链当中删除。方法时调用函数ChangClipboardChain(hWnd,hWndpriview);第二参数是保存前一个剪贴板查看器的静态变量。 剪贴板查看器将接受到以下这些消息:WM_DRAWCLIPBOARD:当剪贴板被改变时操作系统向当前剪贴板查看器发送此消息。如果当前剪贴板查看器不是剪贴板查看器链当中第一个剪贴板查看器那么应该把消息发送给链当中其上面的一个剪贴板查看器。同时根据程序逻辑对程序的显示作相应的更新。WM_CHANGCBCHAIN:当剪贴板查看器链中有一个剪贴板查看器被删除那么操作系统就会向当前剪贴板查看器发送此消息;其中wParam参数是被删除的剪贴板查看器的窗口句柄,lParam参数是删除的剪贴板查看器的上一个剪贴板查看器的窗口句柄。处理这个消息时,首先要确定删除的是不是当前剪贴板查看器的上一个剪贴板查看器,如果是,那么要把之前保存前一个剪贴板查看器的静态变量用lParam赋值;如果不是,那么简单的将消息发送给上一个剪贴板查看器。 2个Dword长的数据,如何转化能用1个Dword长的数据进行表示 两个对话框之间如何进行消息传递。 请问如何实现在ie中打开word界面的功能,比如说我要在ie中打开写字板界面来显示txt文件 这次中国队踢亚洲杯,表现还不错啊! 一个奇怪的现象???有关listview 请教:结构的拷贝构造函数! 问数据库入门! 学了vc6,要不要学vc.net? 怎样创建一个只有CWinApp 和 CFrameWnd类的工程? 关于c的2个简单问题,谢谢帮助 函数命名的问题。 CLISTCTRL
MSDN上面API里面的输入那里有详细的介绍。
? 可以这样,因为不管什么操作都是通过调用api完成的,监控那些能够实现复制文件的api应该可以达到效果.至于怎么实现监控api这个就复杂了,你可以搜索一下,是可以实现的,实际上内存泄漏的工具就是监控那些分配内存的api做到的.
-------------------------------------------------
不管什么操作都是通过读写内存来的,不如对所有的内存操作都作监视好了
当剪贴板查看器被结束时,也就是在处理WM_DESTROY消息中我们应该把当前程序从剪贴板查看器链当中删除。方法时调用函数ChangClipboardChain(hWnd,hWndpriview);第二参数是保存前一个剪贴板查看器的静态变量。
剪贴板查看器将接受到以下这些消息:
WM_DRAWCLIPBOARD:当剪贴板被改变时操作系统向当前剪贴板查看器发送此消息。如果当前剪贴板查看器不是剪贴板查看器链当中第一个剪贴板查看器那么应该把消息发送给链当中其上面的一个剪贴板查看器。同时根据程序逻辑对程序的显示作相应的更新。
WM_CHANGCBCHAIN:当剪贴板查看器链中有一个剪贴板查看器被删除那么操作系统就会向当前剪贴板查看器发送此消息;其中wParam参数是被删除的剪贴板查看器的窗口句柄,lParam参数是删除的剪贴板查看器的上一个剪贴板查看器的窗口句柄。处理这个消息时,首先要确定删除的是不是当前剪贴板查看器的上一个剪贴板查看器,如果是,那么要把之前保存前一个剪贴板查看器的静态变量用lParam赋值;如果不是,那么简单的将消息发送给上一个剪贴板查看器。