Windows VC++编程问题,如何获取文件粘贴事件,在粘贴事件执行前做一些操作。
我在做一个远控软件,但我想让我的远控软件支持远程复制粘贴,在本地复制后,粘贴到远程桌面,但复制后不想立即传输到远程端电脑,我是希望能本地复制后,更新远端电脑的剪贴板信息,等远端执行粘贴命令时,传输到远程端,然后进行粘贴,不太清楚OLE剪贴板是否能解决我的问题,对OLE剪贴板我还不是很了解。
本人最开始有以下两个计划,但总觉得Hook技术偶尔不是很稳定,希望能有不需要Hook的方法:
1.本地复制,发送到远程端文件列表信息更新剪贴板,然后判断到复制的是文件时,远程端Hook粘贴函数,等粘贴函数执行的时候,发送到控制端粘贴命令,然后发给远程端粘贴。
2.本地复制,发送到远端文件列表信息更新剪贴板,远程端临时创建几个与被复制同名的文件,将剪贴板的信息设置为这几个临时文件,然后Hook住这几个文件的读写函数,等读取这几个文件的时候,通知控制端进行传输,传输完成后继续这几个文件的读取。
本人看过VNC的源码,里面貌似没有文件远程复制粘贴功能,只有文件远程传输功能,但我想直接加入复制粘贴功能,跪求各位大神有没有什么好的方法,尽量不使用Hook进行文件传输,本人监控过TeamViewer的文件复制粘贴,但TV好像是注册了一种剪贴板数据类型,使用OLE剪贴板进行文件粘贴,但具体怎么实现的我不清楚。