Mausbewegung über Dektop hinaus Messen



  • Hallo,

    ich schreibe ein Programm das die Abweichung der Maus vom Punkt x,y misst.(wird für Messungen verwendet). Jetzt wird aber ein grösserer Messbereich als der Desktop benötigt.
    Nun muss ich also die Bewegung der Maus direkt auslesen und nicht die Position auf dem Desktop, um die Position auch ausserhalb des Desktops weitermessen zu können! Wie mach ich das? Get es mit GetMouseMovePoints()???

    Schönen Dank schon mal!



  • da musst du dir nen mouse-hook (heißt das wirklich so !? ;)) schreiben.
    d.h.: wenn die maus bewegt wird, bekommt windows eine entsprechende nachricht. die fängst du ab und erhälst daraus die position der maus.

    ich weiß jetzt wo ich ein gutes beispiel gesehen habe, glaube bei visual c++ in 21 tagen. vielleicht kennt jemand noch ein gutes beispiel



  • Danke erst mal für deine Antwort!

    Hab mich jetzt mal ein bischen mit Hooks beschäftgt und folgendes zusammengestrickt:

    BOOL CMausPosApp::InitInstance()
    {
    ...
    MouseHook = SetWindowsHookEx(WH_MOUSE,&MouseProc,(HINSTANCE) NULL,GetCurrentThreadId());
    ...
    
    }
    
    LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam, LPARAM lParam){
    	MOUSEHOOKSTRUCT* test;
    	test = (MOUSEHOOKSTRUCT*)lParam;
    
    	return CallNextHookEx(MouseHook,nCode,wParam,lParam);
    
    }
    

    Funktion sogar! Die funktion wird bei einer mausbewegung aufgerufen. Per debug hab ich mir die Werte angeguckt und .... es sind leider wieder nur die normalen Bildschirm Koords!!
    Ich bräuchte aber eine Funktion die eigentlich die Mausbewegung direkt ausliest und auf keinen Fall die Koords! Nur so kann ich die Mausbewegung über die Bildschirmgrenzen hinaus verfolgen!
    Vielleicht ist ja ein Spielepogrammierer unter euch... der müsste das doch wissen!

    Währe euch für jeden tritt in die richtige richtung sehr Dankbar!!!!



  • Hab das Problem gellöst!
    Ist zwar getrickst aber es funktioniert!
    Enfach immer mit SetCursorPos() Den Cursor immer wieder in die mitte bringen und dann die mit GetCursorPos die Aktivität überwachen! Die Differenz der positionen dann in eine extra variable addieren!

    mfg Andreas


Log in to reply