Fügen Sie Text in das Textfeld einer anderen Anwendung ein

9

Wie kann ich mit C # oder C ++ Text in das Textfeld einer anderen Anwendung einfügen? Ich habe das vor langer Zeit gemacht und schien mich an etwas über die Verwendung der Anwendungen HWND zu erinnern. Aber seit dieser Änderung für jede Instanz der Anwendung fühle ich, dass ich mich nicht an die komplette Geschichte erinnere. Bekomme ich irgendwie eine Liste laufender Apps, entpacke die eine, die ich will, besorge mir die HWND und dann ... hmm .... was dann? :)

    
inquam 27.12.2010, 13:58
quelle

4 Antworten

12

Verwenden Sie FindWindowEx () , um das Handle zu finden ( HWND) und senden Sie dann die Nachricht WM_SETTEXT mit SendMessage ()

Wenn Sie FindWindowEx verwenden, müssen Sie zuerst das Handle des Hauptfensters finden, indem Sie seinen Klassennamen verwenden. Dann müssen Sie nach dem Handle des Containers suchen, in dem sich die Textbox befindet, indem Sie FindWindowEx aufrufen, das Handle des übergeordneten Elements (das Fenster) und den Klassennamen des Containers übergeben. Sie müssen dies wiederholen, bis Sie die Textbox erreichen. Sie können ein Tool namens Spy ++ verwenden, das standardmäßig installiert ist mit Visual Studio, um die Zielanwendung zu untersuchen und die Hierarchie der Container (alle Objekte werden wirklich Fenster in der API, aber ich rufe sie Container im Gegensatz zu der obersten Ebene Fenster) mit ihren Klassennamen.

    
Xavier Poinas 27.12.2010, 14:07
quelle
3

Dann SendMessage (), WM_SETTEXT

    
Hans Passant 27.12.2010 14:01
quelle
-1

Sie können die ClipBoard-Klasse verwenden, um dasselbe zu erreichen

    
TalentTuner 27.12.2010 14:02
quelle
-2

Anstatt eine bestimmte App zu targetieren, könnten Sie einfach Tastenanschläge an das Textfeld senden.

%Vor%     
Roblox 21.06.2014 19:20
quelle