| Autor |
Nachricht |
SideWinder
Moderator
Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18704
|
SideWinder Moderator
14:30:36 19.09.2004 Titel: |
[DOS] Maus |
Zitieren |
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!
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #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. |
_________________ http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/
Zuletzt bearbeitet von SideWinder am 14:55:41 19.09.2004, insgesamt 2-mal bearbeitet |
|
 |
Werbeunterbrechung
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum nicht antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|