![]() |
Zitat:
|
Du mußt nach dem translatePoint ein postEvent(event) aufrufen, das macht das gleiche wie - PostMessage unter Windows, beispielsweise. Dem Betriebssystem wird durch das postEvent(event) mitgeteilt ein SetCursorPos erst jetzt explizit - unter Windows z.B. - auszuführen.
|
Zitat:
2. Jedes Objekt, das auf Bewegungen des Mauszeigers reagieren soll, muß sich als Mouse-Listener angemeldet haben. Falls die Maus über dem Objekt etwas tut, wird das Objekt entsprechend darüber informiert. |
hmm, ich weiß nicht
für mich is n treiber die schnittstelle zwischen hardware und OS und deshalb geräteabhängig. n server is zB für mich n im hintergrund laufendes programm. aber ich glaub ich werd trotzdem was treiberähnliches programmieren müssen. das mit dem MouseListener stimmt nur bedingt glaub ich. für die Bewegungen selbst ist der MotionListener verantwortlich, der MouseListener erkennt nur die tasten bzw das mouseEntered und mouseLeaved. ändert jedoch leider nichts an der tatsache dass es nicht mit java geht. |
vielleicht
geht es ja mit DirectX SDK
Dort sollte es etwas geben, mit dem du direkt die Tastatur abfragst und eine Mouse-Move-Message an alle Anwendungen schicken kannst.:o |
das wäre ja gelacht, wenn man einen cursor nicht setztn kann wo man will!!
in der klasse Cursor hast du schon nachgeschaut - wie ich vermute ich werd mich mal ein wenig auf die suche machen, aber heute nicht mehr (GÄÄÄHHHHN ...) |
Die Lösung des Problems stellt sich folgendermaßen dar:
1. Eine systemweite Hookfunktion für die Tastaturnachrichten einrichten 2. In dieser Hookfunktion werden die gewünschten Tastencodes für die zu generierenden Mauszeigerversatz (Positionierung) Nachrichten / Funktionsaufrufe ausgefiltert und zur Steuerung des Mauszeigers herangezogen. D.h. es wird mittels switch Anweisung und case Fällen die entsprechende Positionsveränderung durchgeführt. Unter Java passiert dies mit der Erzeugung eines Mausevents mittels new und dem Aufruf von translatePoint sowie dem Einreihen der Nachricht in der Ereigniswarteschlange (Event Queue) mit postEvent. Das ganze soll sich ja auf den Desktop beziehen, im Übrigen auch auf alle Anwendungen, im übrigen auch auf alle Fenster aller Anwendungen. Insofern muß man eine systemweite Hookfunktion auf die Tastatur einrichten. Wie geschieht das ganze in der Praxis, warum Java :p ? besser in einfachem C, da funktioniert es wenigstens einfach: *) Hookfunktion einrichten Code:
MyKeybdHookHandleNr=SetWindowsHookEx( Code:
LRESULT CALLBACK MyBliBlaTralalaKeybdHookFunktion( MyKeybdHookHandleNr ist vom Typ HHOOK und muß eine globale Variable sein, max_desktopx und max_desktopy sind vom Typ int und ebenso globale Variablen, beschaffbar von Windows mittels dieser zwei Aufrufe: max_desktopx=GetSystemMetrics(SM_CXSCREEN); max_desktopy=GetSystemMetrics(SM_CYSCREEN); |
Uiuiuiui... des wird jetzt aber kompliziert...
maus mit cursortasten bewegen.. ging doch in windoofs eh schon immer.. musst halt die EINGABEHILFEN installieren. Da is sowas praktischerweise gleich dabei :) wollt ich nur mal so am rand bemerkt haben... |
@kikakater
wow, danke, werd mich mal durchackern und verstehen probieren. großen dank. @sesa mina das weiß ich, hilft mir in meinem konkreten fall nicht weiter. trotzdem danke |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag