2016-08-30 4 views
-1

Ich habe ein Formular und auf dem Formular habe ich einen Webbrowser und derzeit geöffnet google.com darauf.SendMessage Funktion zum Senden von Text

Cursor ist bereits auf das Suchfenster fokussiert. Ich habe versucht, Suchtext zu WebBrowser Steuerelement mit SendMessage SEND aber nicht funktioniert. Aktueller Code

Const WM_SETTEXT As Integer = &HC 

Dim hdle As IntPtr = WebBrowser1.Handle 

SendMessage(hdle, WM_SETTEXT, 0, "test") 

Warum wird Text nicht an die Google-Registerkarte für die gezielte Suche gesendet? Wie löse ich das?

S.: Ich möchte keine SendKeys oder HTML-Methode zu SetText verwenden. Ich möchte nur Handler verwenden.

+0

Wie/Wann löst das Ereignis für die SendMessage aus? – Luke

+0

Timer oder Knopf. –

Antwort

0

Das Fensterhandle des Webbrowser-Steuerelements ist nicht das Fensterhandle des Textbearbeitungssteuerelements. Sie senden die Nachricht nicht an das Steuerelement, das Sie beabsichtigen.

In der Tat verwendet jeder Mainstream-Browser, den ich kenne, keine Fenstersteuerungen. Damit das Textfenster nicht einmal einen Fenstergriff hat, wird kein Arbeitsaufwand Ihr Basiskonzept erfolgreich machen.

Was Sie zu tun versuchen, können Sie am besten mit der UI-Automatisierung erreichen.

+0

Kann es mit dem SendMessage Keystroke gemacht werden? Taste hoch, runter, WM_char? –

+0

Wohin wirst du die Nachricht senden, wenn ich bedenke, was ich oben geschrieben habe? Und warum würdest du es schicken? Die Eingabe wird in die nicht gesendete Eingabewarteschlange gestellt. Die Faking-Eingabe erfordert SendInput. Aber warum, oh, warum willst du Input vortäuschen, wenn es einen Automatisierungsrahmen gibt? Wir bekommen jede Woche eine solche Frage. Warum bist du so entschlossen, nicht zu automatisieren? –

Verwandte Themen