c++ - 如何检测鼠标点击是合法的还是自动的?

标签 c++ vb.net

如何知道鼠标点击是否是模拟的?当鼠标点击通过程序或真正的鼠标设备发送时

...我正在为游戏编写系统检测程序,以避免仅接受合法鼠标点击的机器人、自动点击等

最佳答案

这在一定程度上取决于您正在编写的应用程序类型,但如果可以的话,我会观察光标移动,而不是点击。 人类鼠标移动具有不均匀的速度、 react 时间、不精确性(点击按钮的不同坐标等...)。

此外,您可以通过随机要求难以编写脚本的交互来保护图形用户界面免受机器人攻击。例如:如果脚本依赖于始终位于相同位置的按钮,我会确保在尝试保持直观的同时,对话框每次都应在略有不同的位置弹出。

否则:无法检测鼠标是真实鼠标还是模拟得很好的鼠标。 Windows HID/MacOS/Linux 驱动层抽象出鼠标、触控笔、触控球、绘图板、触摸屏……当然还有脚本鼠标……之间的区别。

关于c++ - 如何检测鼠标点击是合法的还是自动的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091780/

相关文章:

c++ - 通过指向基的指针删除对象,而没有虚拟析构函数

html - 在 C++ 应用程序中嵌入 WebKit

vb.net - 如何使 SendKeys 在 IBM Host Access Library 中同步 Action

vb.net - 选项严格和空

c# - 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

javascript - 当两个标签的宽度通过 javascript 改变时,它们会自动改变位置

c++ - 使用 const_cast 消除常量

c++ - 连接 IMPEG2DEMULTIPLEXER 和 ffdshow Directshow 过滤器

c++ - tesseract 3.01 actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES

C# 到 VB.Net : Why does this fail to compile when converted to VB?