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!