Laden...

Maus in Konsole verwenden

Erstellt von AyrA vor 10 Jahren Letzter Beitrag vor 10 Jahren 3.053 Views
AyrA Themenstarter:in
60 Beiträge seit 2010
vor 10 Jahren
Maus in Konsole verwenden

Ich habe dies hier mal vor Ewigkeiten nach einer Lösung zur Benutzung der Maus in einem Konsolenprogramm gefragt, jedoch konnte mir niemand helfen.
ich benötigte dies aber letztens für einen Kundenauftrag und habe mich daher ein wenig durch die Windows API gewühlt und habe es geschafft die Maus in der DOS Konsole zu verwenden mit C#.

Download: http://home.ayra.ch/proj/files/MouseTest.zip (oder über den Dateianhang im zweiten Beitrag)

Der Download ist ein komplettes C# Projekt mit vorkompiliertem Beispielprogramm. Es funktioniert mit AnyCPU sowie x64 und x86.
Für die Mausoperationen wird lediglich die Mausklasse benötigt. Diese ist durchgehend kommentiert.

Wichtige Funktionen der Klasse:

Enable()
Aktiviert die Mauseingabe. Auf meinem PC war dies sowiso immer aktiviert aber hiermit kann die Aktivierung erzwungen werden, sofern es mal nicht der Fall sein sollte.
Disable()
Deaktiviert die Mauseingabe. Ist bei programmabschluss nicht zwingend notwendig, aber interessant, wenn die Maus gesperrt werden soll im aktiven Konsolenfenster.
GetMouse([autoDiscard])
Gibt den aktuellen Zustand der Maus zurück (Position, Buttons), die Position ist nicht in Pixel sondern in Zeichen, kann also mit Console.SetCursorPosition(X,Y) verwendet werden. autoDiscard ist ein bool parameter (freiwillig) und standardmässig false. Tastatur und Maus teilen sich den Eingabepuffer. Wird eine Taste gedrückt, ist die Maus blockiert, bis die Taste ausgelesen wurde. Wird autoDiscard auf true gesetzt, dann wird die GetMouse funktion bei Bedarf den Tastaturpuffer leeren. Sollte dann benutzt werden, wenn keine Tastatureingabe erwünscht ist. CTRL+C, CTRL+BREAK und CTRL+CLOSE funktionieren immer noch wie gewohnt.
Ist die Mauseingabe deaktiviert werden keine Maus Events erzeugt und die Funktion liefert immer den Letzten Zustand vor Deaktivierung zurück. War noch keiner Da, dann eine Maus auf koordinate 0,0 ohne gedrückte Buttons.

Das ganze Projket selbst ist ein Beispielprogramm, so eine art DOS-Paint.
Linke Maustaste: Vordergrundfarbe wählen oder zeichnen.
Rechte Maustaste: Hintergrundfarbe wählen oder radieren.
Mittlere Maustaste: Beenden.

**:::

AyrA Themenstarter:in
60 Beiträge seit 2010
vor 10 Jahren
Maus in Konsole verwenden

Download als Dateianhang

**:::