關於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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章