簡體   English   中英

用於保存按鍵的動態緩沖區-C ++

[英]Dynamic buffer to save pressed keys - c++

我在為公司構建安全性實現時,需要捕獲在特定窗口中按下的所有鍵,並將其保存在緩沖區中,以每5分鍾將其轉儲到文件中。

然后,每隔7分鍾通過郵件發送日志並刪除文件。 這是一個好選擇嗎? 有更好的選擇嗎?

緩沖區用於防止在擦除文件時使用該文件。

呈現給我的問題是,我應該為此使用哪種緩沖區? 它必須是動態的,因為我不知道在保存文件之前將按下多少鍵。

還是有什么方法可以在每次充滿時將靜態緩沖區轉儲到文件中?

簡單的std :: vector可以實現此目的,因為它會自動增長並且其增長策略可以很好地處理您的情況。 您也可以使用std :: list,但將向量保存到文件中可能會更容易。 對於每個按鍵,我將存儲一些結構來保存有關按鍵事件的信息。 如果您在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;簡單內容,也可能沒問題typedef std::vector<char> keystore;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM