可能重复:
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