c++想通过键盘简单的控制光标

代码如下

#include
#include
#include
#include
using namespace std;
int main() {
int x = GetSystemMetrics(SM_CXFULLSCREEN);
int y = GetSystemMetrics(SM_CYFULLSCREEN);
::SetCursorPos(x / 2, y / 2);
POINT ptSrc;
if (!GetCursorPos(&ptSrc)) {
cout << "failed to get position of cursor" << endl;
}
POINT ptDst = ptSrc;
do {
switch (_getch()) {
case 'w':ptDst.y -= 5; SetCursorPos(ptDst.x, ptDst.y); break;
case 's':ptDst.y += 5; SetCursorPos(ptDst.x, ptDst.y); break;
case 'a':ptDst.x -= 5; SetCursorPos(ptDst.x, ptDst.y); break;
case 'd':ptDst.x += 5; SetCursorPos(ptDst.x, ptDst.y); break;
case 'o':mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); break;
case 'p':mouse_event(MOUSEEVENTF_RIGHTUP| MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0); break;
}
} while (1);
return 0;
}

但是一旦运行后将工作区最小化后,这几个方向键就不能使用了,求解?(新手求带)谢谢!

因为最小化之后,光标的焦点不在你的程序内,这个时候你再按建,程序接收不到你的按建消息了,可以尝试使用全局钩子来做

看起来是控制台的,SetCursorPos这个好用吗?

那个移动的地方建议用函数