为什么我得到“无法打开剪贴板”错误?

时间:2011-01-10 15:17:34

标签: delphi

  

可能重复:
  How can I fix “Cannot open clipboard: Access Denied” errors?

您好。

当我尝试执行以下操作时,我偶尔会收到“无法打开剪贴板”错误:

procedure TForm1.btnCopyClick(Sender: TObject);
begin
  Clipbrd.Clipboard.AsText:= Memo.Text;
end;

为什么我收到此错误的任何想法?

编辑:

我找到了这个可能的解决方案:

procedure StrToClipbrd(StrValue: string);
VAR hMem: THandle;
    pMem: PChar;
begin
 hMem := GlobalAlloc(GHND or GMEM_SHARE, Length(StrValue) + 1);
 if hMem <> 0 then
  begin
   pMem := GlobalLock(hMem);
   if pMem <> nil then
    begin
     StrPCopy(pMem, StrValue);
     GlobalUnlock(hMem);
     if OpenClipboard(0) then
      begin
       EmptyClipboard;
       SetClipboardData(CF_TEXT, hMem);
       CloseClipboard;
      end
     else GlobalFree(hMem);
    end
   else GlobalFree(hMem);
  end;
end;

Delphi 7,Win xp

0 个答案:

没有答案