2017-04-21 13 views
0

会社のセキュリティ実装を構築するには、特定のウィンドウで押されたすべてのキーを取得し、バッファに保存して5分ごとにファイルにダンプする必要があります。押されたキーを保存するダイナミックバッファ - C++

次に、7分ごとにログがメールで送信され、ファイルが削除されます。これは良い選択ですか?より良い選択肢がありますか?

バッファは、ファイルを消去するときにファイルが使用されないようにするためのものです。

私に提示される問題は、この目的のためにどのような種類のバッファを使用すべきですか?ファイルが保存される前にいくつのキーが押されるのかわからないので、動的でなければなりません。

また、ファイルがいっぱいになるたびに静的バッファをファイルにダンプする方法はありますか?

+1

これを行う製品は既にあります。 – Pavel

答えて

1

シンプルstd::vectorは、自動的に成長し、その成長戦略があなたのシナリオをうまく処理するため、この目的では問題ありません。 std::listを使うこともできますが、ベクトルをファイルに保存する方が簡単かもしれません。 それぞれのキーを押すごとに、キー押しイベントに関する情報を保持する構造体を保存します。 yoyがウィンドウ上にある場合は、処理する各keyboard messageのlParamとwParamを単純に格納するのが理にかなっています。キーが押されたときにCtrl + Altのような各キーに付随する追加情報を格納するには、wParamが必要です。たとえば :

#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; 

あなたにも、文字列を使用することができますが、それはむしろ、ここでは文字列が必要とされていないと思います。単純なテキスト入力の場合は、単純なものであっても、おそらくOK30であるかもしれません。typedef std::vector<char> keystore;

+0

そして、私はどのデータ型を使うべきですか?私はキー、日付、テキスト(ログ)を保存する必要があります – Manuel23

+0

ベクトルは良い選択ですか? – Manuel23

関連する問題