Hallo,
ich möchte gerne auf Mausklicks (linke Maustaste (MT), mittlere MT, rechte MT), welche auch außerhalb meiner Anwendung stattfinden, einzeln reagieren.
Dies ist, denke ich, am einfachsten mit dieser Methode (?):
protected override void WndProc(ref Message m)
{
if (m.Msg == ???)
{
}
base.WndProc(ref m);
}
Allerdings weiß ich nicht, welchen hex Wert die verschiedenen Maustasten haben (wird ein zuvor definierter Hotkey gedrückt bekommt man z.B. die Nachricht 0x0312) -->
???
Ich hoffe ihr könnt mir helfen!
Bitte beachte in Zukunft [Hinweis] Wie poste ich richtig? 1.1
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Das habe ich mir auch schon mal angesehen, allerdings möchte ich keine Bib einsetzen.
Was spricht denn dagegen in den Quellcode der Bibliothek zu schauen?
..... 🤔 🙄
Der Source ist doch verfügbar?!
Zudem gibt die CPOL Lizenz doch an, dass Du den Source verwenden darfst.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Na gut 😄
ich habe ein bisschen gesucht und getestet...
Aus der bib habe Folgenden Code entnommen:
private const int WM_MBUTTONDOWN = 0x207;
und ich meinem Code eingefügt:
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x207)
{
MessageBox.Show("test");
}
base.WndProc(ref m);
}
Allerdings erscheint nur eine Textbox (bei einem Klick auf die mittlere Maustaste), wenn meine Anwendung im Vordergrund ist.
Hallo,
@Dani432123:
Man sollte sich schon alles anschauen.
Deine Anwendung reagiert erstmal nur auf Ereignisse innerhalb der eigenen Fenster.
Um nun globale Maus- oder Tastaturereignisse abzufangen, muss man etwas mehr Aufwand betreiben, und sollte dabei auch keine Fehler machen, denn sonst funktioniert ggf. die Maus oder Tastatur nicht mehr korrekt (spätestens bis zum Neustart).
Für das von dir gewünschte Verhalten muss man Windows zunächst mitteilen, dass man über alle Ereignisse der Maus / Tastatur benachrichtigt werden möchte, und Windows dann auch eine entsprechende Routine mitteilen. Das alles ist in dem o.g. Projekt erklärt.
Nobody is perfect. I'm sad, i'm not nobody 🙁