Forum: PC Hard- und Software Mauskoordinaten


von Umbrecht (Gast)


Lesenswert?

hi,

wurde leider schon wieder von Google enttäuscht, aus dem Grund richte 
ich meine Frage an euch:

Mein PC, sowie auch andere, werden mithilfe einer Maus bedient. Meistens 
läuft diese über USB.
Sprich, die Maus sendet Informationen an dem PC, wo er den Cursor 
positionieren soll.

Meine Frage ist nun, wo werden diese Informationen gespeichert bzw. 
bearbeitet? Werden die Informationen der Maus direkt über den Prozessor 
oder andere Hardware-Bridgets abgearbeitet? Hat der normale User, falls 
diese Informationen auf dem PC gespeichert werden, überhaupt Zugriff 
darauf?


Diese Frage stellt sich mir weil man mit diversen Programmen wie z.B. 
Autoit die Position des Zeigers verändern kann. Mich Interessiert es 
nun, ob dass auch ohne extra Programm funktioniert.

Danke.

mfg
Umbrecht

von Peter II (Gast)


Lesenswert?

Umbrecht schrieb:
> Sprich, die Maus sendet Informationen an dem PC, wo er den Cursor
> positionieren soll.

nein, sie sagt nur die Richtung in die er sich bewegen soll

> Diese Frage stellt sich mir weil man mit diversen Programmen wie z.B.
> Autoit die Position des Zeigers verändern kann. Mich Interessiert es
> nun, ob dass auch ohne extra Programm funktioniert.

Autoit ist ein normales Programm wie jedes andere auch. Jedes Programm 
kann damit auch den Zeiger ändern, wenn es denn will.

von Thorsten Legat (Gast)


Lesenswert?

Unter Linux kann man ziemlich leicht die rohdaten der Maus auslesen. Das 
sind Geschwindigkeiten in X und Y. Was der pc dann damit anstellt ist 
eine ganz andere Sache. Und natürlich kann man z.b. mit .NET Kram den 
Cursor platzieren wo man möchte.

von Umbrecht (Gast)


Lesenswert?

hi,

Peter II schrieb:
> nein, sie sagt nur die Richtung in die er sich bewegen soll

mit welchem Tool funktioniert dies dann? Macht das der Systemtreiber von 
Windows?

Thorsten Legat schrieb:
> Und natürlich kann man z.b. mit .NET Kram den
> Cursor platzieren wo man möchte.

Linux oder Windows?

mfg
Umbrecht

von Peter II (Gast)


Lesenswert?

Umbrecht schrieb:
> mit welchem Tool funktioniert dies dann? Macht das der Systemtreiber von
> Windows?

das wird wohl Windows selber machen, der Treiber reicht es an Windows 
durch. Bei Touchpad ist es anders, das liefert absolute Koordinaten.

von Irgendwer (Gast)


Lesenswert?

Umbrecht schrieb:
> Meine Frage ist nun, wo werden diese Informationen gespeichert bzw.
> bearbeitet? Werden die Informationen der Maus direkt über den Prozessor
> oder andere Hardware-Bridgets abgearbeitet? Hat der normale User, falls
> diese Informationen auf dem PC gespeichert werden, überhaupt Zugriff
> darauf?

Wie sooft liefert die Windows-API schon von Hause aus die passenden 
Funktionen um sie in dein eigenes Programm einzubauen:
https://msdn.microsoft.com/de-de/library/system.windows.forms.control.mousemove(v=vs.110).aspx
Supermodern ist es natürlich zuvor solche zugriffe erstmal durch zig 
GByte an Framworks zu abstrahieren...

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?


von Georg (Gast)


Lesenswert?

Irgendwer schrieb:
> Wie sooft liefert die Windows-API schon von Hause aus die passenden
> Funktionen

Zitat aus dem Link:

"So ändern Sie das Steuerelement Farbe oder ein Rechteck ausgelöst, um 
das Steuerelement gezeichnet werden."

Damit ist ja alles klar...

Aber prinzipiell richtig, es ist z.B. nicht unüblich, den Mauszeiger bei 
Öffnen eines Dialogs auf dem Ok-Button zu positionieren, und dazu 
braucht man nichts ausser Windows selbst, kein Framework. Aber dann wird 
das Programm so schlank dass man damit keinen Eindruck mehr machen kann.

Georg

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Die Maus ist ein relativ arbeitendes "Zeigegerät". Die Maus selber 
liefert Daten in der Form der Distanz (pos. u. neg.) und Richtung (x u. 
y) um die der Mauspfeil (vom System erzeugt) seit der letzten Abfrage 
bewegt werden soll. Deshalb kann man sie z.B. bei zu kleinem Mauspad 
auch hochheben und versetzt wieder ablegen, ohne dass sich der Mauspfeil 
auf dem Bildschirm bewegt.

Demzufolge kann man aus der Maus/Maustreiber nur die relativen 
Bewegungs-Daten und aus dem System (per API) die absolute Position des 
Mauspfeiles auslesen.

Mit entsprechenden Tools bzw. den API-Aufrufen kann man zwar "seitwärts" 
Daten einspielen und damit den Mauspfeil verschieben, (leider) nicht die 
Maus selber :-)

Touchscreens und die meisten Grafik-Tabletts sind dagegen absolut 
arbeitende Zeigegeräte. Da entspricht die Position des Mauspfeiles auf 
dem Bildschirm immer der (skalierten) Position von Stift oder Finger auf 
der aktiven Fläche ...

Eine Ausnahme sind hier spezielle Trackpads, da kann man den Finger z.B. 
am Rand hochnehmen und ein Stück zurück wieder aufsetzen, ohne dass der 
Pfeil zu dieser Poistion springt.

: Bearbeitet durch User
von Daniel A. (daniel-a)


Lesenswert?

Unter Linux nutzt X die device files in /dev/input/ für Maus und 
Tastatur.  Immer wenn neue eingaben gemacht werden sieht es für 
Programme die aus diesen Dateien lesen so aus, als ob neue Daten (die 
Mausverschiebung, etc.) in die Datei geschrieben worden wären (zumindest 
bei den mäusen, touchscreens, pens und mousepads, bei Tastaturen bin ich 
mir nicht sicher, die stellen eventuell einfach nur den momentanen 
Zustand der Tasten bereit).

Man kann dann jede Eingabe als Eingabeevent interpretieren, das je nach 
Eingabegerät, etc. verschiedene Daten enthält. Mäuse haben dann X und Y 
verschiebung, und im falle einiger dieser Knopfmause wie stark man auf 
den Knopf drückt. Bei 3D mausen gibts auch einfach noch ne dritte 
Koordinate. Bei Touchscreens sind die Koordinaten absolut, sowie meist 
auch bei Touchpads. Touchpads emulieren mehrere Knöpfe häufig nur, indem 
sie schauen wo beim Klick der Finger war. Brauchbare Stifte und 
Touchscreens haben noch eine Druckangabe, wobei bei letzteren diese 
nicht von allen Treibern exportiert wird. etc.
Wenn man in einer X session ist kann man sich diese input events mit 
xinput ansehen.

X, Wayland, etc. sind Programme die dafür da sind Fenster und Texte 
anzuzeigen, auf einer sehr primitiven Ebene. Bei X11 kann man mehrere 
Mauszeiger verschiedenen Eingabegeräten zuordnen, leider sind viele DEs 
nicht darauf eingerichtet. Beim erstellen eines Fensters, Setzen oder 
Auslesen einer Zeigerposition unter X11 komuniziert das Program mit 
hilfe der x library über einen socket mit dem X server. Dieser wiederum 
weiss die Position aller Zeiger, und weiss von Eingaben von den x input 
treibern, die einfach die daten aus /dev/input/XXX decodieren.

Unter Windows kommunizierst du beim Setzen der Zeigerposizion über ne 
library über die Winapi vermutlich mit dem Kernel, aber Windows ist ne 
blackbox, wer weiss wo die info da wohl schlussentlich abgelegt ist.

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

Daniel A. schrieb:
> aber Windows ist ne
> blackbox, wer weiss wo die info da wohl schlussentlich abgelegt ist.

Das ist ja auch ein ganz falscher Ansatz, nach dem Speicherort für 
Systemvariable zu suchen (vielleicht muss man das unter Linux), dafür 
gibt es API-Funktionen, und die funktionieren schon seit WfW3.11 ganz 
unabhängig davon, wo was intern gespeichert ist.

Georg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.