Ich bewege die Maus mit INPUT, um die Cursorposition festzulegen. Das ist in Ordnung, außer dass ich keine Bildschirmwerte verwenden kann, um den Cursor zu bewegen. Wenn ich den Cursor von 0 bis 1680 setzen möchte, muss ich 1680 * 0,66 als dx Wert verwenden, um die richtige Position (im Spiel oder auf dem Desktop) zu bekommen.INPUT_MOUSE: Maus bewegt sich nicht mit gegebenen dx/dy-Werten
(ich benutze mousemove-, wie ich in einem Spiel die Cursor-Position am Einstellung und absolute Positionierung funktioniert nicht da. Ich habe zwei Bildschirme, ein 1680 breit, das andere hat 1280)
Jede Idee Warum muss ich diesen Faktor verwenden oder woher kommt er? Danke.
#define MOUSE_MOVE_FACTOR 0.6619
//Set mouse pos:
void setMousePos(int iX, int iY){
iX = (int)((double)iX*MOUSE_MOVE_FACTOR);
iY = (int)((double)iY*MOUSE_MOVE_FACTOR);
INPUT *buffer = new INPUT[1];
buffer->type = INPUT_MOUSE;
buffer->mi.dx = iX;
buffer->mi.dy = iY;
buffer->mi.mouseData = 0;
buffer->mi.dwFlags = MOUSEEVENTF_MOVE;
buffer->mi.time = 0;
buffer->mi.dwExtraInfo = 0;
SendInput(1,buffer,sizeof(INPUT));
Sleep(100 + (rand() % 50));
}
Kann ich "Memory Leak" sagen? – Puppy
Woher wissen Sie, dass Sie diesen Faktor verwenden müssen? Hast du gerade eine Zufallsnummer gefunden? – josephthomas
Spiele ändern oft den Videomodus. –