Delphi Clipboard 截图后将图片数据复制到剪贴板


今天需要用到一个功能。就是截图后,将图片数据复制到剪贴板。
然后到测试的时候,发现经常出现无法访问的问题。
然后通过一顿盲测,发现在调用前加上  clipboard.open; 就可以。先打开,然后就能设置了。

procedure TfrmUploadPic.GetScreenPic;
var
 bmp : TBitmap;
 can : TCanvas;
 dc: HDC;
begin
 Clipboard.Clear;
 Clipboard.Open;
 bmp := TBitmap.Create;
 bmp.Width := Screen.Width;
 bmp.Height := Screen.Height;
 dc := GetDC(0);
 can := TCanvas.Create;
 can.Handle := dc;
 bmp.Canvas.CopyRect(Rect(0,0,Screen.Width,Screen.Height),can,Rect(0,0,Screen.Width,Screen.Height));
//  Clipboard.Assign(bmp);
 Clipboard.SetAsHandle(CF_BITMAP,bmp.Handle);
 can.Free;
 ReleaseDC(0,dc);
end;


联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678