私は、キーを画面上の別の位置に移動させてから、すぐに非常に速い速度(毎秒50回以上)で戻すようにしようとしています。これは現在のコードです。それはちょうど私が入れた場合は(私は私のマウスの自由な動きを持っているだけで周りの0,0 /でそれを保持していない)、その後、私のマウスの位置を変更することがあった場所へと更新されます。このコードでマウスの位置を最初の位置に戻す
#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);
}
}
最後に睡眠(100)しても一貫して動作しますが、10秒ごとにマウスが0,0に戻ってくるでしょう。
編集 Visual Studioでコンソールアプリ
マウスはC++カテゴリではありません。あなたは、OS環境についてもっと教えてくださいと思いますか? – harper
どのフレームワークを使用していますか?与えたコードは有効なC++ではありません。 [mvce](http://stackoverflow.com/help/mcve)を提供してください。 –
前に[[(質問する)](http://stackoverflow.com/help/how-to-ask)と[this(mcve)](http://stackoverflow.com/help/mcve)をお読みくださいあなたが地域社会からより多くのより良い答えを得るのを助けるものとして、尋ねる。これはWindowsの実行可能ファイルのようですが、 'GetAsyncKeyState'はそのスタックに"プッシュ "されている可能性が高く、呼び出し回数が多すぎます。この関数は、一時的な値を生成して保持し、リフレッシュされるのを待ちます。 [ドキュメントに従って](https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v = vs.85).aspx)、変更を確実にするために関数呼び出しに頼るべきではありません – Bonatti