Hi,
ich muss in einem WebBrowser eingegebene Tasten abfangen.
Leider hat das Webbrowser Objekt selber keine Key Events. Wie kann ich das realisieren?
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hilfe!
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Breuchte jetz echt ma Hilfe....
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hallo Kovu17,
Form.KeyPreview?
herbivore
Hallo zusammen,
leider plagt mich die gleiche Frage.
In meiner Form habe ein WebBrowser Control, welches sich über die gesamte Größe erstreckt.
Diesem habe ich das Event "webBrowser_PreviewKeyDown" zugewiesen. Ein Property habe ich nicht gefunden.
Die Form hat das Event "WebForm_PreviewKeyDown", welches in den Properties per KeyPreview enabled ist.
Zusätzlich habe ich noch (zur Sicherheit) "WebForm_KeyDown" registriert.
Keines dieser Events wirft ein Ergebnis!
Füge ich z.B. ein Label der Form hinzu und lege es über das WebBrowser Control, kann ich jede Taste abfangen, solange es den Fokus besitzt.
Warum weigert sich der WebBrowser so wehement? 🤔
Eine JS Injection in das IhtmlDocument eignet sich leider nicht, da ich in C# die Taste brauche um zu reagieren.
Bin für jeden Ansatz dankbar 🙂
Gruß,
TriB
Hmm - ich hab hier was in VB, das tut
Private Sub WebBrowser1_PreviewKeyDown( _
ByVal sender As Object, ByVal e As PreviewKeyDownEventArgs) _
Handles WebBrowser1.PreviewKeyDown
_Presenter.WebBrowser1_PreviewKeyDown(e)
End Sub
Es ist aber das PreviewKeyDown des WebBrausers, nicht des Forms
Der frühe Apfel fängt den Wurm.
Das ist ja leider das selbe was ich auch schon mache.
In dem WebBrowser habe ich bereits das PreviewKeyDown Event aboniert und gebe einfach eine Message aus. Mehr Events diesbezüglich gibt es bei dem Control ja leider nicht.
Ob e nun Handled ist oder nicht, macht auch keinen Unterschied. So langsam habe ich nun alle Events die mit Keys zu tun haben durch. Es scheint echt nur der WebBrowser resistent zu sein.
Wird wahrscheinlich an der IE-Engine liegen...
so isses.
Webbrauser ist ja im Kern ein Com-Dingsbums.
Der frühe Apfel fängt den Wurm.
Ist zwar auf Umwegen, aber du könntest zum Beispiel überprüfen ob der Webbrowser fokussiert ist, sprich das aktive Element und solange per Global Hooks alle Tasteneingaben protokollieren.
Wenn ich nicht hier bin, findest du mich auf code-bude.net.
Hi ErfinderDesRades & blutiger_anfänger,
das habe ich mir auch schon gedacht. Ist aber sehr unschön.
Wenn man dann einmal nicht mitbekommt, das das Control den Fokus verliert schießt man sich komplett ab 😦
Mittlerweile denke ich das es echt keine elegante Möglichkeit gibt.
Evtl. könnte man mit WMI oder so auf den Internet Explorer zugreifen oder irgendwie mit IHTML eine Funktion in die Seite einbauen.
Per JavaScript-Injection wäre das kein Problem, nur weiß ich dann nicht wie ich das als Event in C# mitbekomme.
Gruß
TriB