问题遇到的现象和发生背景
mouseevent设置time(移动快慢)后黑屏
问题相关代码,请勿粘贴截图
void MouseMove(double x1, double y1, int ti)//鼠标移动指定相对坐标
{
//POINT pt = { 0,0 };
//GetCursorPos(&pt);//鼠标位置
double fScreenWidth = ::GetSystemMetrics(SM_CXSCREEN) - 1;//获取屏幕分辨率宽度
double fScreenHeight = ::GetSystemMetrics(SM_CYSCREEN) - 1;//获取屏幕分辨率高度
double fx = (x1/*+pt.x*/) * (65535.0f / fScreenWidth);
double fy = (y1/*+pt.y*/) * (65535.0f / fScreenHeight);
INPUT Input = { 0 };
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_MOVE;//MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE
Input.mi.dx = fx;
Input.mi.dy = fy;
Input.mi.time = ti;
SendInput(1, &Input, sizeof(INPUT));
}
运行结果及报错内容
显示器黑屏,显示无信号,但是单击一下可唤醒,而鼠标速度即使调到1似乎也还是慢不下来,也有可能是因为黑屏而未能目睹移动
我的解答思路和尝试过的方法
这是微软的说明,有可能我漏了什么关键信息
https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-mouseinput