如何使用 C 模拟单击​​ Windows 和 Linux?

How do I simulate a single click on Windows and Linux using C?

我应该使用哪些库?

我应该阅读哪些文档?

也许有人可以提供代码示例?

在 Windows 上,如果您想在特定 window 内模拟鼠标单击,相关 window 消息如下(link 包含文档) :

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_LBUTTONDBLCLK(第二次点击时,将发送此消息而不是 WM_LBUTTONDOWN)

要模拟鼠标点击,您可以使用 PostMessage() 函数发送 window 任何这些 window 消息。

对于此功能,您需要目标 window 的 window 句柄 (HWND)。例如,这可以使用 EnumWindows() or FindWindow() 函数获得。

但是,如果您想模拟鼠标在屏幕上而不是在特定 window 内单击,则必须使用 SendInput() function. For further details, see this Stack Overflow question.

此外,请注意自 WindowsVista 以来,出于安全原因,无法再从非特权进程发送具有管理权限的进程消息。

以上信息仅适用于Windows。很遗憾,我无法在 Linux 方面为您提供帮助,但您可以在 this Stack Overflow question 中找到解决方案。