2008-08-28 6 views
0

Ich möchte das Drag-and-Drop-Verhalten einiger vorhandener Anwendungen erweitern und frage mich, ob es eine Möglichkeit gibt, Drag-and-Drop-Unterstützung oder Änderungen am Drag & Drop-Verhalten zu hacken, indem die Nachrichtenschleife der App überwacht und meine eigene injiziert wird Mitteilungen.Gibt es eine Möglichkeit, das Ziehen/Ablegen oder Kopieren/Einfügen-Verhalten einer vorhandenen App in Windows zu überschreiben?

Es wäre auch für die Überwachung arbeiten, wenn eine Paste Operation ausgeführt wird, im Grunde ein eigenes Verhalten zu erstellen, wenn ein Steuerelement nur Einfügen von Text unterstützt und ein Bild eingefügt wird.

Ich denke, Detours könnte meine beste Wette sein, aber ein Problem ist, dass ich benutzerdefinierten Code für jede App schreiben wollte, die ich erweitern wollte. Wenn nur Windows auf Erweiterbarkeit ausgelegt ist!

Auf einer anderen Anmerkung, gibt es ein O, die Erweiterbarkeit dieser Art unterstützt?

Antwort

0

Wenn Sie bereit sind diddling im Speicher zu tun, während die Anwendung geladen wird, könnten Sie wahrscheinlich, dass finagle.

Aber wenn Sie nach einem einfachen Weg suchen, um nur Code injizieren Sie in ein anderes Fenster auf die Nachricht von Pumpe wollen, sind Sie es nicht gehen zu finden. Die Fähigkeiten, die erforderlich sind, um so etwas zu erreichen, sind gewaltig (es sei denn, jemand hat das alles in eine mir unbekannte Anwendung/Bibliothek eingepackt, aber ich bezweifle es). Es ist wie Zwischenablage hooking, groß geschrieben: es ist verpönt, es gibt Unmengen von gotchas, und Sie sind sehr wahrscheinlich, erhebliche Instabilität in Ihr System einzuführen, wenn Sie nicht wissen, was Sie tun.

0

Nun, denken Sie daran aus der Sicht des App-Designers. Wenn Sie eine Anwendung geschrieben haben, möchten Sie, dass Benutzer in der Lage sind, Dinge in Ihre Anwendung zu injizieren (was wäre noch wichtiger, möchten Sie den Support/Umsatz Kopfschmerzen ahnungsloser Benutzer, die dies tun und dann beschuldigen)? Die Drag-and-Drop-Infrastruktur jeder Anwendung ist speziell für die Anwendung geschrieben, damit Sie keine Objekte auf die Anwendung löschen können (was möglicherweise zu Abstürzen und allen anderen unangenehmen Verhaltensweisen führt, wenn Sie etwas auf eine App ziehen, die es nicht verarbeiten kann) . Zeug wie dieses ist aus einem Grund schwer zu tun.

Es ist möglich zu tun, aber es ist eine Menge Arbeit: Sie müssen den Fensterhandle der Sache, die Sie auf etwas ablegen möchten, und ersetzen Sie dann die Nachrichtenhandler des Fensters mit Ihren eigenen. Das ist natürlich gefährlich, da Sie entweder alle vorhandenen Funktionen dieses Fensters selbst replizieren müssen oder die App nicht korrekt funktionieren lassen können.

0

Hm das ist wirklich schade. Ich vermute, es gibt manchmal Gründe, warum Apps noch nicht existieren. Im Grunde genommen versuche ich, den Prozess des Sendens von Bildlinks an Personen zu vereinfachen, die verschiedene Apps verwenden (hauptsächlich Webbrowser - Textformulare, aber auch jederzeit in einem Terminalfenster), indem ich den Prozess des Einfügens eines Bildes in ein Textkontext, lade das Bild im Hintergrund hoch und füge eine URL mit einer einzigen Aktion dorthin, wo das Bild hochgeladen wurde.

Edit: Ich nehme an, die leichte Lösung ist nur eine neue Tastatur Combo zu erstellen, die von meinem app angeschlossen wird, bevor es auf jede anderen App bekommt. Es gibt keinen Grund, insbesondere, dass ich es an die Copy/Paste-Funktionalität binden muss.