这里有一些我已经说过的Win32代码:
#define WIN32_LEAN_AND_MEAN
#define _WIN32_WINNT 0x0500
#include
#include
#include
#include
#include
#include
#define X 123
#define Y 123
#define SCREEN_WIDTH 1024
#define SCREEN_HEIGHT 800
void MouseSetup(INPUT *buffer)
{
buffer->type = INPUT_MOUSE;
buffer->mi.dx = (0 * (0xFFFF / SCREEN_WIDTH));
buffer->mi.dy = (0 * (0xFFFF / SCREEN_HEIGHT));
buffer->mi.mouseData = 0;
buffer->mi.dwFlags = MOUSEEVENTF_ABSOLUTE;
buffer->mi.time = 0;
buffer->mi.dwExtraInfo = 0;
}
void MouseMoveAbsolute(INPUT *buffer, int x, int y)
{
buffer->mi.dx = (x * (0xFFFF / SCREEN_WIDTH));
buffer->mi.dy = (y * (0xFFFF / SCREEN_HEIGHT));
buffer->mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE);
SendInput(1, buffer, sizeof(INPUT));
}
void MouseClick(INPUT *buffer)
{
buffer->mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN);
SendInput(1, buffer, sizeof(INPUT));
Sleep(10);
buffer->mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP);
SendInput(1, buffer, sizeof(INPUT));
}
int main(int argc, char *argv[])
{
INPUT buffer[1];
MouseSetup(&buffer);
MouseMoveAbsolute(&buffer, X, Y);
MouseClick(&buffer);
return 0;
}
在使用之前,您需要调用MouseSetup()到每个INPUT缓冲区。
Resources
07000 07001 07002
本文介绍了如何在C++中使用Win32 API进行鼠标控制,包括移动鼠标和模拟点击。通过示例代码展示了如何设置鼠标位置、执行鼠标移动及单击操作。要实现这些功能,需要调用MouseSetup(), MouseMoveAbsolute() 和 MouseClick() 函数,并结合SendInput()函数发送输入事件。"
124255567,5757168,悬镜安全研发体系荣获CMMI3认证,"['软件工程', '安全认证', 'DevSecOps', '网络安全', '软件供应链']
3604

被折叠的 条评论
为什么被折叠?



