![]() |
Strg + V Einfügen ein paar fragen
Hi,
Ich möchte ein Programm schreiben, welches bei dem Hotkey Strg + V, die zu kopierenden Daten in in einer Liste Speichert und alle nach und nach in einer Liste aufnimmt. Diese Liste wird gleichzeitig via Thread abgearbeitet. Momentan habe ich selbst den Hotkey gelegt. Nun meine Fragen: 1. Kann ich auch erkennen wenn iwo Rechtemaustaste gedrückt wird und auf "Einfügen" gedrückt wird? 2. Wie erkenne ich den Ort, wo die kopierten Dateien aus dem Clipboard eingefügt werden? 3. Gibts es eine Möglichkeit, sofern das einzufügene keine Datei ist, das "Windows-Einfügen" zu simulieren? mfg gandime Frohe Weihnachten! |
Re: Strg + V Einfügen ein paar fragen
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?
Bei ersterem bräuchtest du ja nur den Listeneintrag wieder in die Zwischenablage tun ... |
Re: Strg + V Einfügen ein paar fragen
Hier ein bisschen Code
![]()
Delphi-Quellcode:
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.
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; Bis jetzt habe ich im MSDN nichts, bei Google auch nichts und hier ebenfalls nichts hilfreiches gefunden! zu meiner zweiten Frage: Zitat:
Blos wie erkenne ich ob es ein Windows-Explorer Fenster ist? Und ob dort ein Ordner Markiert ist? Zitat:
Zitat:
Weil im Zusammenhang mit der Ersten Frage verstehe ich es sonst nicht! |
Re: Strg + V Einfügen ein paar fragen
Hi,
da fallen mir spontan die Gexperts ein: ![]() Dort gibts eine Clipboard-History, die auch ausserhalb von Delphi die Zwischenablage überwacht. Geh doch dort mal schauen. |
Re: Strg + V Einfügen ein paar fragen
hi,
das sind leider nur historys, die die WM_DRAWCLIPBOARD message benutzen, was mir leider nicht hilft... Ich habe auch schon nach Clipboard hooks gesucht aber nichts gefunden was die WM_PAST global abfängt geschweige denn registriert, zumindest habe ich noch nichts in der Richtung gefunden! |
Re: Strg + V Einfügen ein paar fragen
hab da mal wegen dem Simulieren des Past-Befehles ungeschaut habe was gefunden in VB:
Delphi-Quellcode:
' Paste the contents of the Clipboard into a control
Sub ControlPaste(ByVal hWnd As Long) SendMessage hWnd, WM_PASTE, 0, ByVal 0& End Sub ![]() die übersetzung wäre dann wohl so:
Delphi-Quellcode:
blos was bedeutet das: "ByVal 0&"?
var
H:HWND; begin H:=GetActiveWindow; SendMessage(H,WM_PASTE,0,0); |
Re: Strg + V Einfügen ein paar fragen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz