Einzelnen Beitrag anzeigen

Sidi61

Registriert seit: 13. Jun 2006
97 Beiträge
 
Delphi XE5 Professional
 
#1

Datei in Zwischenablage

  Alt 30. Okt 2014, 10:12
Hallo zusammen,

ich möchte gern eine Datei (Test.xlsx) in die Zwischenablage kopieren und anschließend mittels Strg+V oder über das Menü rechte Maustaste/Einfügen in ein beliebiges Verzeichnis oder Mailanhang kopieren.

Dazu habe ich auch schon einige Beispiele gefunden die letztendlich immer den selben Code verwenden

Code:
// Aufruf mit CopyFilesToClipboard('C:\Bootlog.Txt'#0'C:\AutoExec.Bat'); Files durch #0 trennen
procedure TForm_Schleifbrand.CopyFilesToClipboard(FileList: string);
var
  DropFiles: PDropFiles;
  hGlobal: THandle;
  iLen: Integer;
begin
  iLen := Length(FileList) + 2;
  FileList := FileList + #0#0;
  hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT,
    SizeOf(TDropFiles) + iLen);
  if (hGlobal = 0) then raise Exception.Create('Nicht genügend Speicher vorhanden');
  begin
    DropFiles := GlobalLock(hGlobal);
    DropFiles^.pFiles := SizeOf(TDropFiles);
    Move(FileList[1], (PAnsiChar(DropFiles) + SizeOf(TDropFiles))^, iLen);
    GlobalUnlock(hGlobal);
    Clipboard.SetAsHandle(CF_HDROP, hGlobal);
  end;
end;
nach dem Ausführen der procedure wird auch etwas in die Zwischenablage kopiert, zumindest zeigt das Menü über rechte Maustaste/Einfügen den Menüpunkt Einfügen als anwendbar an aber weder durch den Menüpunkt noch durch Strg+V lässt sich die Datei irgendwo hin kopieren. Es geschieht nichts, keine Fehlermeldung, der Menüpunkt Einfügen bleibt aktiv

Hat jemand eine Idee??

Gruß
Sidi61

Nachtrag: sorry - hat sich erledigt, konnte mit diesem Beitrag

http://www.delphipraxis.net/1038948-post7.html

von MarcoWarm das Problem lösen

Gruß

Geändert von Sidi61 (30. Okt 2014 um 10:25 Uhr)
  Mit Zitat antworten Zitat