*räusper*
Ein
Unicode-Problem sollte man nicht damit lösen es zu ignorieren. Falls mal Unicodezeichen im Pfad vorkommen 'المسار_الأكاديمي.png' ... (oops hoffentlich hat google das richtig übersetzt) hilft dir diese routine nicht weiter. Also besser so:
Delphi-Quellcode:
procedure CopyFilesToClipboard(FileList:
string);
var
DropFiles: PDropFiles;
hGlobal: THandle;
iLen: Integer;
begin
iLen := Length(FileList);
hGlobal := GlobalAlloc(GMEM_SHARE
or GMEM_MOVEABLE
or GMEM_ZEROINIT, SizeOf(TDropFiles) + ((iLen + 2) * SizeOf(Char)));
if (hGlobal = 0)
then raise Exception.Create('
Could not allocate memory.');
try
DropFiles := GlobalLock(hGlobal);
if (DropFiles =
nil)
then raise Exception.Create('
Could not access allocated memory.');
try
DropFiles^.pFiles := SizeOf(TDropFiles);
DropFiles^.fWide := (SizeOf(Char) = SizeOf(WideChar));
if FileList <> '
'
then
Move(FileList[1], (PByte(DropFiles) + SizeOf(TDropFiles))^, iLen * SizeOf(Char));
finally
GlobalUnlock(hGlobal);
end;
Clipboard.SetAsHandle(CF_HDROP, hGlobal);
except
GlobalFree(hGlobal);
end;
end;
Dann geht auch sowas:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
CopyFilesToClipboard('C:\Temp\المسار_الأكاديمي.png');
end;
viel Spaß
Marco