需求:
后台程序(没有窗口句柄),需要长时间的占用剪贴板(cpu利用率比较高,把进程优先级降低可缓解,但不能降低到onidle,因为后台程序运行的同时,前台需要让操作),这期间就导致了剪贴板不可用,现想到一解决办法如下
后台程序往剪贴板写数据之前,保存初始剪贴板数据,然后使用剪贴板,并监视系统api调用,一旦有额外的程序(非我的后台和前台程序)调用openclipboard,即把我的后台程序挂起,并将开始保存的数据放到剪贴板。在监视到对应程序closeclipboard之后,再将剪贴板数据保存(开始保存的数据删掉),然后再继续运行我的后台程序使用剪贴板。仅想到解决办法,但不知道如何实现,请高人指教一下,需要用到些什么技术,有现成的经过测试的代码更好。谢了先。

解决方案 »

  1.   

    以上办法用到监视系统api效率,自己感觉有点变态,如果谁有其它办法,欢迎指点
      

  2.   

    http://blog.csdn.net/lixiaosan/archive/2006/04/28/694783.aspx
      

  3.   

    小三,你那blog里哪有讲监视api的啊?
      

  4.   

    监视剪贴板有什么用?
    我是要给系统api挂钩子
      

  5.   

    为什么要用剪贴板,进程间通信好多方式,例如 CreateFileMapping
      

  6.   

    可以使用剪帖板延迟提交,打开剪帖板后不放入数据,在有程序需要剪帖板数据时,会给当前程序发送一个消息WM_RENDERFORMAT,消息参数中指定了需要的数据的剪帖板格式。当前程序应该响应这个消息并将数据放到剪帖板上。这个在《windows程序设计》里有很详细的介绍的.
      

  7.   

    TO:LookSail(老得牙都掉了还在学)
    必须走剪贴板;to:zjh824(coder)
    根延迟生成没有关系,你仔细看看我的需求就知道,延迟生成解决不了。