[英]Delphi Clipboard: Read file properties of a file copied
僅通過檢查剪貼板,我就可以看到至少 2 種有用的格式:
FileName
(Ansi) 和FileNameW
(Unicode) 保存復制到剪貼板的文件名。 因此,基本上您可以使用RegisterClipboardFormat
then (或兩者)之一,然后檢索您需要的信息。 例如
uses Clipbrd;
var
CF_FILE: UINT;
procedure TForm1.FormCreate(Sender: TObject);
begin
CF_FILE := RegisterClipboardFormat('FileName');
end;
function ClipboardGetAsFile: string;
var
Data: THandle;
begin
Clipboard.Open;
Data := GetClipboardData(CF_FILE);
try
if Data <> 0 then
Result := PChar(GlobalLock(Data)) else
Result := '';
finally
if Data <> 0 then GlobalUnlock(Data);
Clipboard.Close;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Clipboard.HasFormat(CF_FILE) then
ShowMessage(ClipboardGetAsFile);
end;
獲得文件名后,只需獲取它的大小或您想要的其他屬性。
注意:以上是在 Delphi 7 中測試的。對於 Delphi 的 Unicode 版本使用FileNameW
格式。
另一種更實用的方法(對於復制的多個文件也很有用)是注冊和處理CF_HDROP
格式。
以下是 Delphi 中的一個示例:如何將 Windows 資源管理器中的文件粘貼到您的應用程序中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.