1

バックグラウンドで動作するアプリケーションを実行し、ユーザーが押したすべてのキーを読み取り、ファイルに保存したいと思います。Winフォームで書き始め、キーPressedイベントを使用しますが、フォームがフォーカスされている場合は機能します:/

それを行う別の方法ですか?Windowsサービスについて聞いたが、使用したことはない:/

4

3 に答える 3

4

あなたはこれらの助けを借りてそれを行うことができます:

あなたの理由はわかりませんが、彼らが「良い」ことを願っています。

于 2010-02-18T21:18:20.360 に答える
2

これを実現するために使用する適切なコードを探して多くの調査を行った後、独自のC# Keylogger APIを作成することにしました。それは非常にシンプルでクリーンです:

api.CreateKeyboardHook((character) => { Console.Write(character); });

コールバックを渡すだけで、API はユーザーが押したキー、たとえばユーザーがその瞬間にいた画面などを返します。明らかに、それはバックグラウンドで動作します。

詳細はこちら: https://github.com/fabriciorissetto/KeystrokeAPI

于 2015-10-23T13:22:21.393 に答える
1

すべてのウィンドウへのすべての主要なイベントを傍受したいと仮定しています。

これには C# はお勧めしません。Win32/64 API にドロップする必要がありますが、これは実行できますが、補助輪のない Visual C++ などを使用する方がよいでしょう。

これを行うにはいくつかの方法があります。最も簡単なのは、キーボード イベントのフックを登録することです。基本的なサービスを実装し、メイン ループ/イベント ハンドラーでキー プレス イベントを処理します。また、タイトなポーリング ループでキーボードの状態をブルート フォースすることもできますが、これは CPU を泣かせます。

管理者権限なしで独自のキーボード ドライバーをインストールする方法は 1,000,001 通りありますが、その道をたどると仮定すると、自分で見つける必要があります。

stackoverflowの誰かがキーロガーの作成を手伝ってくれるとは思えません。Win32 API の内部に飛び込む必要があり、おそらく自分で理解する必要があります。しっかりとした C のバックグラウンドがあれば難しくありません。Windows の「セキュリティ」は煙と鏡にすぎません。

于 2010-02-18T21:31:51.457 に答える