移动鼠标位置,然后回到开始位置
Moving mouse position then back to beginning position
我正试图使键移动鼠标到屏幕上的不同位置,然后立即返回,以非常快的速度(每秒50+次)这是我当前的代码。
#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);
}
}
用这段代码,它会改变我的鼠标位置,然后更新到它在哪里(我没有鼠标的自由移动,只是保持它在0,0左右)如果我把Sleep(100)放在最后,然后它的工作非常一致,但每~10秒我的鼠标会再次卡在0,0,我把睡眠越少发生这种情况,但为什么?
edit console app in Visual Studio
查看GetAsyncKeyState的文档
返回值例子类型:短
如果函数成功,返回值指定键是否自从上次调用GetAsyncKeyState以来被按下,以及是否当前键是向上或向下的。如果设置了最高有效位,则密钥为下,如果设置了最低有效位,则密钥为在之前调用GetAsyncKeyState后按下。然而,你不应该依赖最后这一行为;有关更多信息,请参见言论。
if (GetAsyncKeyState('W') & 0x8000)
{
std::cout << "W key pressedn";
}
SetCursorPos(0,0)
将光标移动到左上角,而SetCursorPos(p.x, p.y)
将光标移动到调用GetCursorPos
时的位置。你不会看到鼠标位置有任何变化。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- C++ 从具有开始位置和结束位置的列表中删除
- SDL_Mixer再次播放时,从随机位置开始一段时间,然后从头开始
- 读取从ifstream中n的位置n开始的二进制字节
- 如何从特定位置开始搜索地图/多映像
- 从给定位置 C++ 开始对数组进行重新排序
- 返回从字符串末尾 (C++) 之后的位置开始的子字符串
- 从偏移位置开始复制内存
- 使用Args.中的n个参数..从位置m开始
- 从随机起始位置开始的螺旋阵列
- 从任何位置开始迭代整个数组,仅使用一个变量
- 使用cout从特定位置开始打印
- C++映射从迭代器位置开始搜索
- 移动鼠标位置,然后回到开始位置
- 使用glutmotionfunction获取运动开始和结束时的x位置
- 如何使std::regex在字符串中的特定位置开始匹配