用于保存按下的键的动态缓冲区 - c++
Dynamic buffer to save pressed keys - c++
im 为公司构建安全实现时,需要捕获在特定窗口中按下的所有键,并将它们保存在缓冲区中,以便每 5 分钟将它们转储到文件中。
然后,每 7 分钟通过邮件发送一次日志并删除文件。这样做是一个好的选择吗?有没有更好的选择?
缓冲区是为了防止在擦除文件时使用文件。
呈现给我的问题是,我应该为此目的使用哪种缓冲区?它必须是动态的,因为我不知道在保存文件之前会按多少键。
或者有没有办法在每次文件变满时将静态缓冲区转储到文件中?
简单的 std::vector 可以用于此目的,因为它会自动增长,并且其增长策略可以很好地处理您的场景。您也可以使用 std::list,但将矢量保存到文件中可能会更容易。 对于每次按键,我都会存储一些结构来保存有关按键事件的信息。如果 yoy 在 Windows 上,那么简单地存储您处理的每条键盘消息的 lParam 和 wParam 可能是有意义的。您需要 wParam 来存储每个键附带的额外信息,例如按下某个键时的 Ctrl+Alt。 例如:
#include <windows.h>
struct keypress
{
UINT lParam; // The character code of the key.
UINT wParam; // The repeat count, scan code, extended-key flag etc.
};
typedef std::vector<keypress> keystore;
你也可以使用字符串,但它宁愿不要,这里需要字符串。如果您只是简单地输入简单的文本,那么即使使用简单的东西也可以typedef std::vector<char> keystore;
相关文章:
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- Vulkan 中的动态顶点缓冲区格式设置
- 导致堆缓冲区错误的动态分配数组的析构函数
- 我正在尝试使用回溯来解决 N queen 问题,但在编译时它会给出运行时错误(动态堆栈缓冲区溢出)
- 从C 中的函数中动态分配的缓冲区返回的最佳模式是什么?
- 用于保存按下的键的动态缓冲区 - c++
- 将包含位字段和动态数据的结构复制到 Char 数组缓冲区中
- Vulkan中动态统一缓冲区的缓冲区内存分配
- 如何使用 std::make_shared 创建动态大小缓冲区
- 在 Windows 应用商店应用中映射 Direct3D11 中的动态缓冲区
- 抽象数据类型命名约定:(动态)数组,向量,序列,列表,容器,缓冲区
- 动态打包 OpenGL 顶点缓冲区对象的数据
- 动态顶点缓冲区在 D3D 中的效率和使用情况
- 如何在动态char*缓冲区上使用strcpy
- 缓冲区的动态内存分配
- 动态分配缓冲区(字符字符串)大小 =i;使用马洛克
- 带有动态缓冲区的Windows readfile
- c++中的动态(类型)二进制缓冲区
- Zlib deflate和动态输出缓冲区
- 在C中连接两个字符串并动态分配缓冲区