gpt4 book ai didi

c++ - SendInput 让系统休眠

转载 作者:可可西里 更新时间:2023-11-01 15:21:53 30 4
gpt4 key购买 nike

我试图弄清楚 SendInput 函数的正确用法,以便我可以直接操纵屏幕上的光标,因此为了进行基本测试以了解其工作原理,我制作了这个应该将光标移动 10 的短片段右边的像素。理论上。

#include <windows.h>
#include <winable.h>

int main()
{
INPUT joyInput;
joyInput.type = INPUT_MOUSE;
joyInput.mi.dx = 10;
joyInput.mi.dwFlags = MOUSEEVENTF_MOVE;
SendInput(1, &joyInput, sizeof(INPUT));
return 0;
}

但是,在实践中,SendInput 函数要么让我的计算机进入休眠状态,要么至少关闭我的显示器,这肯定是一种不需要的效果!注释掉该行可以防止问题发生,但显然我需要它来执行任务。我究竟做错了什么?

最佳答案

MOUSEINPUT结构具有您未初始化的三个成员 - dymouseDatatime。由于文档没有提到默认值,我假设该程序最初可以自由地向这些成员填充它想要的任何垃圾。您应该明确设置值以避免这种情况。

#include <windows.h>
#include <winable.h>

int main()
{
INPUT joyInput;
joyInput.type = INPUT_MOUSE;
joyInput.mi.dx = 10;
joyInput.mi.dwFlags = MOUSEEVENTF_MOVE;

joyInput.mi.dy = 0;
joyInput.mi.mouseData = 0;
joyInput.mi.time = 0;

SendInput(1, &joyInput, sizeof(INPUT));
return 0;
}

关于c++ - SendInput 让系统休眠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13723868/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com