| zur Startseite | Infos für Behinderte | Behindertensoftware | Forum | Programmierarchiv |
| Webguide | Markus privat | Kontakt | Download | Gästebuch |
| Online Games | Entstehungsgeschichte |
Programmieren einer Tastaturmaus (Mausbefehle)
|
Tja, Microsoft hat ja schon an uns Behinderte gedacht z. B. mit der Tastasturmaus! Aber die Tastaturmaus wird mit dem Zahlenblock rechts bedient. Was machen hier der Linkshänder? Kein Problem!! Mit einer Syshotkey-Komponente (wird in meinem Tasteneditor verwendet), mit der man die Tastenbelegung Systemweit ändern kann und folgenden Mausbefehlen, läßt sich völlig simpel eine flexible Tastasturmaus programmieren!!! Tja, zunächst die Frage: Wie bewegt man so einen Mauszeiger? Das Prinzip ist ganz einfach. Man holt sich die aktuelle Mausposition, ändert sie ab und setzt sie wieder! varP: TPoint; begin // Maus hoch GetCursorPos(P); SetCursorPos(P.X, P.Y-1); // Maus links hoch GetCursorPos(P); SetCursorPos(P.X-1, P.Y-1); // Maus rechts hoch GetCursorPos(P); SetCursorPos(P.X+1, P.Y-1); // Maus rechts GetCursorPos(P); SetCursorPos(P.X+1, P.Y); // Maus links GetCursorPos(P); SetCursorPos(P.X-1, P.Y); // Maus rechts unten GetCursorPos(P); SetCursorPos(P.X+1, P.Y+1); // Maus links unten GetCursorPos(P); SetCursorPos(P.X-1, P.Y+1); // Maus unten GetCursorPos(P); SetCursorPos(P.X, P.Y+1); end; So gut, jetzt können wir Sie bewegen!! Aber wie realisieren wir den Mausklick? Wie bekomme ich das Handle des Objekts wo ich drauf klicken will?? Handle?? Pfui, schon wieder ein Fremdwort!! Damit man ein Windowsobjekt überhaupt ansprechen kann muss man ja seinen "Namen" wissen!! Dieser Name ist in Windows eine Zahl und wird als Handle betitelt!! Alles klar? Wir brauchen aber kein Handle!! Es geht viel einfacher: // Linker MausklickMouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); // Rechter Mausklick Mouse_Event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0); // Doppelter Mausklick rechts Mouse_Event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0); // Doppelter Mausklick links Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); Mouse_Event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); So, dass waren die Befehle die man zur Programmierung einer Tastaturmaus braucht! Interessant ist zum Thema Maus noch, wie man die Maustasten vertauscht! Auch ganz einfach: SystemParametersInfo(SPI_SETMOUSEBUTTONSWAP, Maustasten, nil, 0);Maustasten ist ne varible vom Typ Integer. Sie kann durch null oder eins ersetzt werden. |