Ich muss für etwas Klarheit sorgen:
Ich habe bisher folgendes in die Registry eingetragen:
Code:
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
EventHandlers
ShowPicturesOnArrival: AutoPlayTest
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
Handlers
AutoplayTest: Action: TestAction
InvokeProgID: AutoPlayTest.Test
InvokeVerb: TestInvokeVerb
Provider: TestProvider
HKEY_CLASSES_ROOT
AutoPlayTest.Test
Shell
TestInvokeVerb
CLSID: {61BFAF8D-3DA6-4028-91FF-EBC83D5B1DD0}
HKEY_CLASSES_ROOT
CLSID
{7A984D53-940C-4fff-827B-8FEF848C165B}
LocalServer32: (Standard): C:\Project1.exe
Mein Programm wird schon mal gestartet, aber ich habe noch nicht ganz herausbekommen, wie ich IDropTarget implementieren muss und ob es etwas mit
OLE Drag & Drop zu tun hat.
Leider geschieht nach dem Starten noch nichts. Also bleibt immer noch die Frage: Wo und wie muss ich IDropTarget implementieren?
Muss mein Form IDropTarget implementieren?
TMainForm = class(TForm, IDropTarget)
Oder kann ich folgenden Code verwenden:
RegisterDragDrop(Handle, DropTarget)
Oder muss das völlig anders gemacht werden?
Bisher habe ich es noch nicht zum Laufen gebracht. Auch mit dem Code aus dem anderen Thread nicht. Habe dort angegebene Unit2 testweise eingebunden, was aber keinen Effekt gezeigt hat: Die Drop(...)-Methode wurde nicht aufgerufen.
Übrigens habe ich bemerkt, dass man statt dem
CLSID-Ansatz auch direkt das Kommando in dieser Form in der Registry angeben kann:
Code:
TestInvokeVerb
Command: (Standard):"C:\Programme\meine.exe" /open"%L"
Ich würde es aber gern, sofern möglich über den IDropTarget-Ansatz lösen, da das doch einige Vorteile bieten würde.
Vielen Dank,
Andreas
Andreas N.