为什么通过系统消息监视系统剪贴板,在打开IE选中文本后,点击复制能正常将文本粘贴下来,但这时若关闭IE窗口,又会重复粘贴刚才的文本。在WORD里复制后退出情况也是如此。请各位高手指教。

解决方案 »

  1.   

    将剪贴板清空,这样的话,其他软件就不能粘贴该文本了。
    程序流程简述如下:
    //加入到系统的剪贴板监视链中
    procedure FormCreate(Sender: TObject);
    begin
      FNextViewerHandle := SetClipboardViewer(Handle);
    end;//监视剪贴板
    procedure WMDrawClipboard (var message : TMessage);
    begin
      SendMessage(WM_DRAWCLIPBOARD, FNextViewerHandle, 0, 0);
      if [ReadyOK] then [SaveClipboardText];
    end;//撤销监视
    procedure FormDestroy(Sender: TObject);
    begin
      ChangeClipboardChain(Handle, FNextViewerHandle);
    end;
      

  2.   

    难道IE窗口关闭时也触发WM_DRAWCLIPBOARD?