Laden...

Key-Event bei WebBrowser

Erstellt von Kovu vor 17 Jahren Letzter Beitrag vor 14 Jahren 2.704 Views
K
Kovu Themenstarter:in
488 Beiträge seit 2006
vor 17 Jahren
Key-Event bei WebBrowser

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?

K
Kovu Themenstarter:in
488 Beiträge seit 2006
vor 17 Jahren

Hilfe!

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

K
Kovu Themenstarter:in
488 Beiträge seit 2006
vor 17 Jahren

Breuchte jetz echt ma Hilfe....

Das Leben is :ugly:

Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Kovu17,

Form.KeyPreview?

herbivore

T
708 Beiträge seit 2008
vor 14 Jahren

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

5.299 Beiträge seit 2008
vor 14 Jahren

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.

T
708 Beiträge seit 2008
vor 14 Jahren

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...

5.299 Beiträge seit 2008
vor 14 Jahren

so isses.
Webbrauser ist ja im Kern ein Com-Dingsbums.

Der frühe Apfel fängt den Wurm.

B
293 Beiträge seit 2008
vor 14 Jahren

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.

T
708 Beiträge seit 2008
vor 14 Jahren

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