Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Dateien in der Zwischenablage auslesen

  Alt 25. Jun 2008, 17:18
Also im Clipboard stehen immer mehrere Formate gleichzeitig drin.
Das ist ganz wichtig zu wissen!
Mit meinem Clipboard-Explorer kann man sich die verschiedenen Formate anzeigen lassen.
Wenn man in Outlook einen Anhang kopiert, dann wird unter anderem auch ein Format mit dem Namen FileContents im Clipboard abgelegt.
In diesem Format ist die gesamte Datei enthalten.

Um an die Daten ranzukommen, muss man im eigenen Programm diese Format ebenfalls registrieren:
Delphi-Quellcode:
var CF_FILECONTENTS : Word;
...
CF_FILECONTENTS := RegisterClipboardFormat('FileContents'); // nur einmal beim Prog.start
Dann kann man abfragen, ob dieses Format im Clipboard enthalten ist und auslesen:
Delphi-Quellcode:
if clipboard.HasFormat(CF_FILECONTENTS) then
// folgendes Code-Stückchen habe ich aus meiner Unit ClipboardTools rausgeschnitten
with Clipboard do
begin
//var
// size : DWORD;
// handle : THandle;
   Open;
   try
      handle := GetAsHandle(fmt);
      if handle <> 0 then
      begin
         size := GlobalSize(handle);
         if size > 0 then
         begin
            // Daten nach Result(string) kopieren
            SetString(Result, PChar(GlobalLock(Handle)), size);
            GlobalUnlock(handle);
         end;
      end;
   finally
      Close;
   end;
end;
Miniaturansicht angehängter Grafiken
clipboardoutlookanhang_881.gif  
Andreas
  Mit Zitat antworten Zitat