maustreiber unter dos
-
hallo
ich habe da eine frage: in einer bestehenden applikation ist die maus an com1 oder com2 angeschlossen. nun möchte ich auch ps2 mäuse anschliessen können. der mauscursor funktioniert. die tasten funktinoieren aber nicht. was mache ich falsch bzw. was muss ich in der source ändern oder hinzufügen?
danke gruss urs
-
Welchen Treiber nimmst du überhaupt her?
Steuerst du die Maus per Interrupt an oder direkt per COM-Schnittstelle?
-
logitech maustreiber 8.5, mit interrupt
-
Mit dem Interrupt aus der Konsolen-FAQ?
-
keine ahnung, so genau habe ich mich noch nicht eingearbeitet
-
Zeig mal nur den Quellcode, wo du auf die Maus zugreifst.
-
reicht das? die funktion LRMouse_GetButPresInfo sollte nun eigentlich die ps2 maus abfragen.
int LRMouse_GetButPresInfo(int *buttonStatus,int *x,int y)
/--------------------------------------------------------------------*/
{
union REGS regs;regs.x.ax = 5;
regs.x.bx = 2;
int86(MOUSE_INTR,®s,®s);
*buttonStatus = regs.x.ax;
*x = regs.x.cx;
*y = regs.x.dx;
return (regs.x.bx);
}Position des Mauscursors abfragen
void LRMouse_GetCursPos(int *x,int *y)
/--------------------------------------------------------------------/
{
union REGS regs;regs.x.ax = 3;
int86(MOUSE_INTR,®s,®s);
*x = regs.x.cx;
*y = regs.x.dx;
}aus dem main programm
{
if (LRMouse_GetButPresInfo(&button,&x,&y))
{
// Mausklick vorhanden?
if ((button & MOUSE_RIGHTBUTTON) != 0 &&
(button & MOUSE_LEFTBUTTON) != 0)
{
fbEnabled = true; /* FB4 ist immer aktiv */
fb = MASK2_FB_4;
}
else
{
if ((button & MOUSE_RIGHTBUTTON) != 0)
{
fbEnabled = prgData.fb[2];
fb = MASK2_FB_3;
}
else
{
if ((button & MOUSE_LEFTBUTTON) != 0)
{
fbEnabled = prgData.fb[1];
fb = MASK2_FB_2;
}
else
{
fbEnabled = prgData.fb[0];
fb = MASK2_FB_1;
}
-
Schau dir mal diesen Beitrag an:
http://www.c-plusplus.net/forum/viewtopic.php?t=39315Das müsste dir weiterhelfen.
Das Problem liegt wohl daran, dass du die falsche Routine aufrufst, um die Maustasten abzufragen.