[DOS] Maus
-
Die Maussteuerung unter DOS funktioniert über Interrupts. Der Ablauf ist im Prinzip immer gleich: Eine REGS-Union wird ausgefüllt, danach wird der Interrupt ausgeführt und eine eventuelle Ausgabe in unsere REGS-Union ausgwertet.
Hier einige sinnvolle Funktionen - vergesst nicht, dass ihr dafür einen geladenen Maustreiber benötigt!
#include <dos.h> // Initialisiert die Maus und gibt die Anzahl der Maustasten bzw. -1 im Fehlerfall zurück int mouseInit () { union REGS regs; regs.x.ax = 0x00; int86(0x33,®s,®s); if(regs.x.ax != 0) return -1; else return regs.x.bx; } // Zeigt oder versteckt den Mauscursor void showCursor (bool show = true) { union REGS regs; if(show) regs.x.ax = 0x01; else regs.x.ax = 0x02; int86(0x33,®s,®s); } struct COORD { SHORT x; SHORT y; }; // Gibt die derzeitige Position des Mauscursors zurück COORD getCursorPos () { union REGS regs; regs.x.ax = 0x03; int86(0x33,®s,®s); COORD pos; pos.x = regs.x.cx; pos.y = regs.x.dx; return pos; }
Viel genauere Informationen zum Mausinterrupt findet ihr auf der Homepage von Datasource. Wenn ihr die Daten dort mit den hier ausprogrammierten Funktionen vergleicht werdet ihr sehr schnell erkennen was abzuändern ist und eigene Funktionen bauen können!
MfG SideWinder
PS: Wenn ihr Fehler findet, meldet euch bitte umgehend.