“getAsyncKeyState”是不是会触发防病毒程序 c++

Posted

技术标签:

【中文标题】“getAsyncKeyState”是不是会触发防病毒程序 c++【英文标题】:Does "getAsyncKeyState" trigger Anti-Virus programs c++“getAsyncKeyState”是否会触发防病毒程序 c++ 【发布时间】:2016-09-05 05:25:27 【问题描述】:

我正在尝试为 Windows 的 OBS 编写插件,我需要处理按键事件,现在我看到 (1)two posts (2)where people 提到他们的防病毒软件捕获

#include <windows.h>

//...

if( GetAsyncKeyState( VK_UP ) & 0x8000 )

    // the 'Up' arrow key is currently being held down


if( GetAsyncKeyState( 'A' ) & 0x8000 )

    // the 'A' key is currently being held down

作为键盘记录器,有一个专门命名为的防病毒软件 - Kaspersky

这是真的吗,还有没有更多的杀毒程序在 GetAsyncKeyState 上触发,因为杀毒程序认为它是一个键盘记录器,如果是,有没有更好的方法来处理 c++ 中的按键事件?

【问题讨论】:

您是否测试过这些声明?它是免费下载和几行代码。大多数游戏/游戏引擎都使用此 API。 @RichardCritten 还没有,我正要为它创建一个测试dll 【参考方案1】:

过分热心的防病毒软件可以检测到任何恶意内容。

GetAsyncKeyState() 检测可能是防病毒分层引擎的一部分,但该单一规则不太可能触发防病毒保护。您的二进制文件可能还有其他属性,与 GetASyncKeyState() 检测结合使用会触发警告。

仅出于这个原因触发防病毒软件会很奇怪,因为它是一个非常常见的 Windows API 函数。

请记住,防病毒软件经常更新,当检测到这些签名的问题时,误报会得到解决是正常的。

查看此插件的源代码以了解如何使用 OBS 插件处理输入input-overlay

【讨论】:

以上是关于“getAsyncKeyState”是不是会触发防病毒程序 c++的主要内容,如果未能解决你的问题,请参考以下文章

js前端性能优化之函数节流和函数防抖

为啥在 Win32 中使用 `GetAsyncKeyState()` 时我的热键会出错?

函数防抖与函数节流

JS中的函数防抖(debounce)

JS进阶篇2---函数防抖(debounce)

js 函数防抖