edit: Hat sich erledigt / einfach webbrowser wndproc überschrieben LParam zeigt die unterschiedlichen tasten an
Meine (Gamer)Maus hat mehr als nur 3 Maustasten. Wie kann ich abfragen, ob eine davon gedrückt wurde? Ich möchte die Tasten zum navigieren im Webbrowser verwenden (so wie in Firefox/Chrome Seitentasten für Webseite vor/zurück - wird von den Browsern automatisch erkannt)
private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
Der globale Mousehook empfängt als wParam.ToInt32() jedes mal 523 oder 524 hintereinander, sowohl bei der einen als auch bei der anderen taste. lParam sind auch oft gleich.
WndProc geht leider nicht, da die messages vom Webbrowser geschluckt werden
Control.MouseButtons liefert none
**Edit: **Lösung für alle die es interessiert:
public class MyWebBrowser : WebBrowser
{
protected override void WndProc(ref Message m)
{
if (m.Msg == 793)
{
if (m.LParam.ToInt32().ToString() == "-2147352576")
{
// Seitliche Maustaste vor
}
else if (m.LParam.ToInt32().ToString() == "-2147418112")
{
// Seitliche Maustaste zurück
}
}
base.WndProc(ref m);
}
}
Hallo can320,
es freut mich, dass du eine Lösung gefunden und vielen Dank, dass du sie hier geschrieben hast. Noch besser ist es, eigene Lösungen als Antwort zu posten, damit der Thread nicht mehr in den "Themen ohne Antwort" auftaucht. Durch diese Antwort ist das Ziel aber auch erreicht.
herbivore
Hallo can320,
die Umwandlung nach String ist aber natürlich Kappes.
Und für die Zahlenwerte solltest du besser Konstanten oder Enums verwenden (anstatt Magic Numbers).
Und für die Zahlenwerte solltest du besser Konstanten oder Enums verwenden (anstatt Magic Numbers).
Dazu als Ergänzung:
Magische Zahlen in Code
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"