2017-02-21 3 views
-2

Ich bin auf der Suche nach dem Dokument, wie IDropTarget :: Drop-Funktion. Ich möchte meine DLL in die Zielanwendung als Plugin hinzufügen, und hook IDropTarget :: Drop-Funktion, um die abgelegten Dateien zu bekommen. Gibt es jemanden, der die ähnliche Implementierung bereits durchgeführt hat?Wie hook IDropTarget :: Drop

Antwort

-1

Sie müssten wahrscheinlich die Registrierung in der Registrierung übernehmen, damit Windows stattdessen Ihre benutzerdefinierte Anwendung aktiviert. Sie müssten dann die echte Anwendung spawnen und manuell eine Verbindung zur realen Anwendung herstellen, nachdem sie CoRegisterClassObject aufgerufen und den Drop dorthin weitergeleitet hat. Dies ist kein Anfänger COM-Sachen und befasst sich nur mit Drops auf die .exe und startet ihre registrierten Dateitypen. Um mit Tropfen auf dem Anwendungsfenster umzugehen, würden Sie auch eine .dll an dem Punkt injizieren, an dem Sie CreateProcess für die reale Anwendung aufrufen. Sie müssen auch berücksichtigen, dass die Anwendung stattdessen die alte WM_DROPFILES verwendet.

Dies ist sehr kompliziert und selbst wenn Sie alles funktionieren könnten, würde es immer noch nicht den Fall behandeln, wo der Benutzer die Anwendung aus dem Startmenü startet und dann Dateien auf dem Fenster ablegt. Um dieses Szenario zu behandeln, müssten Sie sich auch selbst als Debugger dafür im Schlüssel Image File Execution Options registrieren, damit Sie Ihre .dll injizieren können.

An diesem Punkt sind wir weit in "böses" Gebiet. Es ist nicht akzeptabel, andere Anwendungen auf diese Weise zu überholen.

Ihre einzige echte Option ist es, die ursprünglichen Autoren zu fragen, ob sie Plug-In-Unterstützung für die Anwendung hinzufügen können.