Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Global Mouse Move
cognitionis
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

Global Mouse Move

beantworten | zitieren | melden

Hallo zusammen,

wie kann ich global abfragen, ob die Maus bewegt wurde?
Also ich möchte ein Programm im Hintergrund laufen lassen, welches nur etwas tun soll, wenn die Maus bewegt wird. Ich habe zwar im Internet ein paar Codebeispiele von anderen Leuten gefunden, aber da war alles aufgeteilt auf mehrere Klassen, ohne eine Erklärung dazu. Und ich möchte nicht einfach etwas importieren und benutzen, sondern verstehen wie so etwas funktioniert und selber im Code implementieren.
Danke im Voraus!

greetz
private Nachricht | Beiträge des Benutzers
Papst
myCSharp.de - Experte



Dabei seit:
Beiträge: 403
Herkunft: Kassel

beantworten | zitieren | melden

Was hast du denn bisher probiert? Bzw., was funktioniert nicht?
Was genau möchtest du erreichen?

Dieses Beispiel auf StackOverflow ist doch sehr überschaubar: how-do-i-capture-the-mouse-move-event
private Nachricht | Beiträge des Benutzers
cognitionis
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

beantworten | zitieren | melden

Hallo,

der Code funktioniert leider nur, wenn ich die Maus innerhalb der Form des C# Programmes bewege.
Ich möchte aber eine globale Mausbewegung erkennen, wenn sie außerhalb der Form ist bzw. das Programm minimiert ist. Also wenn irgendwo auf der Windowsoberfläche eine Bewegung stattfindet, soll das Programm diese Bewegung erkennen.

greetz
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4191

beantworten | zitieren | melden

Hallo,

das Stichwort dazu lautet: MouseHook (s. z.B. meine geposteten Links in Erfassen, welches Object sich gerade im Drag und Drop befindet außerhalb der Form)
private Nachricht | Beiträge des Benutzers
cognitionis
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

beantworten | zitieren | melden

Hallo,
danke für die Projekte, aber ich verstehe den Code ehrlich gesagt nicht, da ich noch Anfänger bin. Hilfreich wäre es wenn es dazu eine Anleitung bzw. Beschreibung geben würde, was dieser Code genau macht und wie ich den selbstständig in meinem Projekt einbauen kann, damit ich etwas dazulernen kann.

LG
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4191

beantworten | zitieren | melden

Das ist schon etwas fortgeschrittenere WinAPI-Programmierung (das nichts direkt mit .NET zu tun hat).
Du solltest dir ersteinmal einfachere Projekte zum Lernen aussuchen, s.a. [FAQ] Wie finde ich den Einstieg in C#? sowie [FAQ] C# Projektvorschläge (Anfänger, Schüler, Praktikanten).
private Nachricht | Beiträge des Benutzers
cognitionis
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

beantworten | zitieren | melden

Ich arbeite ja nebenbei ohnehin meine Tutorials ab und bringe mir Schritt für Schritt alles bei (mittels Buch, Internetseiten und Youtube) aber ich möchte eben nebenbei auch ein Programm umsetzen, das ich dringend brauche und dafür müsste ich eben die Mausbewegung abfragen und integrieren und mit WinAPI muss man sich ohnehin früher oder später beschäftigen. Ich finde das Problem liegt nicht in der Komplexität, sondern eher in der mangelnden Doku, denn ich habe bis jetzt noch nirgends einen Code gefunden, der ordentlich kommentiert wurde und bei dem man Schritt für Schritt nachvollziehen kann, was dieser Code macht.

LG
private Nachricht | Beiträge des Benutzers
cognitionis
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

beantworten | zitieren | melden

Gibt es evtl. auch die Möglichkeit die globale Mausposition, also X und Y Koordinaten abzufragen?
Damit wäre es vmtl. noch leichter, denn man könnte ja einfach alle 30 Sekunden abfragen, ob sich die Position verändert hat.
So müsste es ja theoretisch auch klappen, aber leider finde ich im Internet nirgends Information zur globalen Abfrage von Maus Koordinaten.

LG
private Nachricht | Beiträge des Benutzers
Spook
myCSharp.de - Member



Dabei seit:
Beiträge: 241
Herkunft: Esslingen a.N.

beantworten | zitieren | melden

Hallo,

hier gibt es ein Projekt für globale Mouse- und Keyboard-Hooks:
Global-Low-Level-Key-Board-And-Mouse-Hook
Mit drei Zeilen Code hast du deinen Hook erstellt - Beispiel ist auch vorhanden.

Ansonsten suchst du die GetCursorPos function mit welcher du die Mausposition abrufen kannst.
Hier der P/Invoke dafür:
https://www.pinvoke.net/default.aspx/user32.getcursorpos

Grüße
spooky
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4191

beantworten | zitieren | melden

Die Doku dazu gibt es in der WinAPI: Hooks ff.
private Nachricht | Beiträge des Benutzers