Ich versuche, Schlüssel die Maus an eine andere Position auf dem Bildschirm bewegen und dann sofort zurück, mit einer sehr schnellen Rate (50 + mal pro Sekunde) Dies ist mein derzeitiger Code .Bewegen Mausposition dann zurück zur Anfangsposition
#include "stdafx.h"
#include <iostream>
#include <windows.h>
int main()
{
POINT p;
for(; ;)
{
if (GetAsyncKeyState(0x57) < 0)
{
GetCursorPos(&p);
std::cout << "W key pressed";
SetCursorPos(0, 0);
SetCursorPos(p.x, p.y);
Sleep(100);
}
}
Mit diesem Code meiner Mausposition, es wird nur dann aktualisieren, zu ändern, wo es war (ich habe keine freie Bewegung meiner Maus und halte sie nur auf/um 0,0) Wenn ich setze Schlaf (100) am Ende dann klappt es ziemlich durchgängig, aber alle ~ 10 Sekunden bleibt meine Maus bei 0,0 stecken, je mehr ich den Schlaf aufstelle, desto weniger passiert das, aber warum?
bearbeiten Konsolenanwendung in Visual Studio
Maus ist keine C++ - Kategorie. Denkst du, du solltest mehr über die Betriebssystemumgebung erzählen? – harper
Welchen Rahmen verwenden Sie? Weil der Code, den Sie geben, C++ nicht gültig ist. Stellen Sie eine [mvce] (http://stackoverflow.com/help/mcve) bereit. –
Bitte lesen Sie [diese (wie Sie fragen)] (http://stackoverflow.com/help/how-to-ask) und [diese (mcve)] (http://stackoverflow.com/help/mcve) vorher fragen, da diese Ihnen helfen werden, mehr und bessere Antworten von der Gemeinschaft zu bekommen. Dies scheint Windows-ausführbare Datei zu sein, der 'GetAsyncKeyState' wird wahrscheinlich auf seinen Stack zurückgeschoben und es werden zu viele Anrufe getätigt. Die Funktion würde dann einen temporären Wert liefern und behalten, der darauf wartet, aktualisiert zu werden. [Laut Dokumentation] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293 (v = vs.85) .aspx) sollten Sie sich nicht auf den Funktionsaufruf verlassen, um Änderungen zu gewährleisten – Bonatti