#include
#include
#include
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
int main()
{
double *speed=new double(0.1);
system("title 脱离鼠标DS");
system("mode con cols=25 lines=15");
POINT mouse;//新建一个POINT类
do
{
POINT mouse;//新建POINT类的mouse
GetCursorPos(&mouse);//将鼠标的位置的地址传递给mouse
if(KEY_DOWN('W'))SetCursorPos(mouse.x,mouse.y-*speed);
if(KEY_DOWN('S'))SetCursorPos(mouse.x,mouse.y+*speed);
if(KEY_DOWN('A'))SetCursorPos(mouse.x-*speed,mouse.y);
if(KEY_DOWN('D'))SetCursorPos(mouse.x+*speed,mouse.y);
Sleep(10);
}while(!KEY_DOWN(27));
}
预览效果应该是用WSAD控制鼠标上下左右移动。
为什么按下S和D键没有反应!
来看看怎么解决啊!
如果你是在登录屏幕上 SetCursorPos 是不起作用的。你可以参考下这里一样切回当前桌面或用event在登录界面也能移动鼠标 https://www.orcode.com/question/441892_k0d934.html
该回答引用ChatGPT
看代码,代码中出现了两个名为 mouse 的 POINT 类,它们同名并且都是在主函数中声明的。可能是这两个变量名冲突造成的。试试将第一次声明的 mouse 变量名改为其他的试试,比如 mouse_origin 。