剪切板是怎么实现的?
本帖最后由 huangjiadog 于 2013-12-18 16:28:54 编辑 我想自己弄一个类似于Windows的剪切板,现在最大的问题不知道怎么把内存里面的数据放到需要粘贴的地方
(比如在ie的地址栏里粘贴,怎么把内存里面的字符串放到地址的输入框里面)
大家有什么想法都说说哈,谢谢
[解决办法]
楼主别折腾了。其实原理很简单,从逻辑上分析一下你的需求根本就不合理:
-剪贴板这种跨进程的操作,肯定需要操作系统的调度。所以就这一点来说,不修改系统(从剪贴板这种简单的到写驱动和服务这种复杂的方法都有,但是无非都是涉及到进程间通信)就完成这个功能恐怕不可能;
-实现原理上,只要不同进程能访问同一个资源,就可能实现数据交换(比如文件、内存、消息等),所以:
-你想实现不影响系统剪贴板,又想完成类似剪贴板的功能,则可知接受“自制剪贴板”内容的进程必须支持你的发送程序的通信协议。从而接收程序要么必须是你自己写的;要么就必须用注入的方式修改目标程序的行为来配合你的发送程序达到剪贴板的效果(比如楼上几位的建议)。总之想做到绝对的干净又想实现这个功能、且不用系统剪贴板的话,在进程内(你自己写的某一个程序内,可以跨线程)可以,跨进程除非也是你写的程序接受,否则不行。
当需求分析做好了以后再去编码也不迟,不然浪费人力物力,就是瞎折腾瞎忽悠。你要知道你只是程序员,而不是法师。