c++SetCursorPos使用

img


#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 。