Mauskontrolle



  • Hallo zusammen,

    ich möchte in meiner Applikation den Mauscursor bewegen. Ich berechne die X und Y Koordinaten, wie kann man jetzt aber den Cursor auf diese Position setzen?

    Ich habe es so ausprobiert:

    BOOL rc;
      rc = SetCursorPos(x,y);
    

    Aber ich bekomme die folgende Fehlermeldung:

    WiiConnect.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__SetCursorPos@8" in Funktion ""void __cdecl IRDots(void)" (?IRDots@@YAXXZ)".
    

    Woran liegt es?

    Grüße
    Alex



  • ..schon gelöst mit:

    #pragma comment(lib, "User32.lib")



  • Hallo,

    ich habe doch noch eine Frage dazu:

    Ich versuche mit einem IR Sender und Empfänger die Maus zu steuern. Der IR Empfänger liefert mit einen float mit f=0.0 für den linken und f=1.0 für den rechten Bildrand.

    Anhand davon bewege ich die Maus:

    //Maus bewegen
    	float xMaus = (dot0.X - 0.1) * 2500;
    	float yMaus = (1- dot0.Y - 0.1) * 2000;
    	SetCursorPos(xMaus, yMaus);
    

    0.1 subtrahiere ich, um die Ungenauigkeit vom IR Empfänger abzufangen.

    Mein Problem ist nun, dass an sich alles funktioniert, die Maus sich aber recht hackelig und nicht flüssig bewegt. Hätte jemand eine Idee, woran es liegen kann?

    Danke



  • Wahrscheinich ist die Auflösung deines Sender/Empfängers zu niedrig, wird es denn bei kleineren Bildschirmauflösungen besser? Ansonsten versuch doch mal heraus zu bekommen was das kleinste Intervall ist, was Dir dein Sender noch liefert.



  • Hi,

    ich glaube nicht, dass es an der Auflösung des Sensors liegt - ich habe eine andere Idee:

    Ich habe die Bewegung der Maus in einer Funktion, die aus der int main() in einer Schleife aufgerufen wird:

    while(!pressed.Button.Home()) {
    
    ....
            IRDots();
    }
    

    Kann die Problematik da liegen? Sprich die Frequenz mit der die Schleife wiederholt wird (und somit die Abtastrate für die Mausposition) ist zu gering. ?
    Würde es Sinn machen, die Funktion für die Bestimmung der Mausposition in einen eigenen Thread zu packen?

    Grüße
    Alex



  • Ich habe mal versucht, die Koordinaten in einem Thread auszulesen und dort auch die Mausposition zu setzen. Ich würde sagen, damit wird es minimal besser, aber trotzdem noch nicht wirklich gut.

    Als letzen Ausweg könnte man die letze Position speichern und wenn eine neue Mausposition kommt einfach eine Gerade dazwischen berechnen und die Mauskoordinaten in einer selbst definierten Granularität dort setzen, so dass es nach Bewegung aussieht? 🙄



  • Hast Du ein Sleep(0) irgendwo im thread?



  • Ich habe einen sleep(20). Bei zu großen Werten ruckelt ist (logischerweise) noch mehr. Bin mir gerade nicht sicher, ob ichs schon mal mit sleep(0) ausprobiert habe



  • Hallo,

    ich habe es nun mit sleep(0) im thread getestet - es ist besser, aber immer noch nicht gut genug.
    Gibt es eine Möglichkeit den Thread per Interrupts öfter aufrufen zu lassen?

    Heeeelp

    Gruß
    Alex


Anmelden zum Antworten