Einzelnen Beitrag anzeigen

gandime
(Gast)

n/a Beiträge
 
#3

Re: Strg + V Einfügen ein paar fragen

  Alt 25. Dez 2008, 00:35
Hier ein bisschen Code Anregung von hier:
Delphi-Quellcode:
type
  ...
  private
    procedure ClipBrdPast(var Message: TMessage); message WM_DRAWCLIPBOARD;
    ...
  end;

procedure TFCPMain.ClipBrdPast(var Message: TMessage);
var
  F:THandle;
  Buffer:Array [0..MAX_PATH] of Char;
  i:Integer;
  NumFiles:Integer;
begin
  if (not (Clipboard.HasFormat(CF_HDROP))) then
    Exit;
  try
    f := Clipboard.GetAsHandle(CF_HDROP);
    if f <> 0 then
    begin
      numFiles := DragQueryFile(f,$FFFFFFFF,nil,0);
      for i := 0 to numfiles - 1 do
      begin
        buffer[0] := #0;
        DragQueryFile(f, i, buffer, SizeOf(buffer));
        SlFile.Add(buffer);
      end;
    end;
  finally
    CloseClipBoard;
  end;
end;
So lasse ich dann den Inhalt auflisten aber das VW_DRAWCLIPBOARD passt nicht da es ausgelöst wird sobald etwas in die Zwischenablage kopiert wird, aber ich möchte es auslösen sobald etwas aus der Zwischenablage eingefügt wird.
Bis jetzt habe ich im MSDN nichts, bei Google auch nichts und hier ebenfalls nichts hilfreiches gefunden!

zu meiner zweiten Frage:
Zitat:
2. Wie erkenne ich den Ort, wo die kopierten Dateien aus dem Clipboard eingefügt werden?
ist meine momentane Idee das Aktive Fenster auslesen und schauen ob es ein Windows-Explorer Fenster ist.
Blos wie erkenne ich ob es ein Windows-Explorer Fenster ist?
Und ob dort ein Ordner Markiert ist?

Zitat von TonyR:
WIllst du, dass man in der Liste dann auswählen kann, was man einfügen will oder willst du alles einfügen, was in der Liste ist?
Alles was normal von Windows an Dateien Eingefügt wird soll mein Programm übernehmen

Zitat von TonyR:
Bei ersterem bräuchtest du ja nur den Listeneintrag wieder in die Zwischenablage tun ...
ömmm meinst du nicht meine Dritte Frage?
Weil im Zusammenhang mit der Ersten Frage verstehe ich es sonst nicht!
  Mit Zitat antworten Zitat