我想將二進制文件複製到剪貼板,因此當用戶右鍵單擊屏幕時可以看到粘貼選項啓用。軟件很好地處理粘貼部分,只需要將文件複製到剪貼板。 這是我第一次與剪貼板工作我想這個代碼將文件複製到剪貼板
Procedure CopyStreamToClipboard(fmt: Cardinal; S: TStream);
Var
hMem: THandle;
pMem: Pointer;
Begin
S.Position := 0;
hMem := GlobalAlloc(GHND or GMEM_DDESHARE, S.Size);
If hMem <> 0 Then Begin
pMem := GlobalLock(hMem);
If pMem <> Nil Then Begin
try
S.Read(pMem^, S.Size);
S.Position := 0;
finally
GlobalUnlock(hMem);
end;
Clipboard.Open;
try
Clipboard.SetAsHandle(fmt, hMem);
finally
Clipboard.Close;
end;
End { If }
Else Begin
GlobalFree(hMem);
OutOfMemoryError;
End;
End { If }
Else
OutOfMemoryError;
End;
這是不工作的IM不知道,但我猜,因爲即時通訊傳遞給方法
CopyStreamToClipboard(CF_HDROP, fileStream);
我想把手的其也可以使用SetClipboardData,但找不到任何有用的示例。謝謝
非常感謝你,幫助我很多,因爲我現在沒有關於剪貼板的想法,現在我知道它是如何工作的,所以我會檢查應用程序,看看它是如何處理粘貼數據,然後我可以決定哪個我要將文件複製到剪貼板 –