2017-07-05 9 views
-6

私は窓用のキーロガーを書いています。私はGetAsyncKeyState(KEY)と非表示のコンソールで押されたキーを取得する予定です。キーが押された後、私はGetForegroundWindowで現在のフォーカスされたウィンドウを取得し、キーが押されたときにどのプログラムが先頭にあるのかを確認します。私はまた、パスワードと他の種類の入力のキープレスを区別できるようにしたい。それを行う方法はありますか?どうやって?キーロガーのパスワードと他の種類のキーボード入力を区別する

私は悪意のあるソフトウェアを作成していません。これは、Advanced Programmingコースの課題です。

+5

ウィンドウウィンドウのチェックボックスを表示します。ユーザーは、パスワードを入力したときにチェックする必要があります。 –

+0

私はキーロガーを書いているので、ユーザーは彼のキーボード入力が記録されていることさえ知りません。 –

+0

@AmirQasemi manni66のコメントは明らかに冗談であることを意図していました。 –

答えて

0

フォアグラウンドアプリは標準のWin32 UIコントロールを使用している場合は、この方法を試してください。フォアグラウンドウィンドウのHWNDを取得する

  • 使用GetForegroundWindow()を。
  • 次に、GetWindowThreadProcessId()GetGUIThreadInfo()を使用して、現在フォーカスされているフォアグラウンドウィンドウの子コントロールを取得します。
  • は、それが持っているかどうかを確認するためにGetWindowLong/Ptr()を使用し、その後
  • (このチェックは、いくつかのUIフレームワークで失敗することがあります!あなたがコントロールタイプを検出するためのUI Automation APIを使用する必要があります)、それは標準EDITコントロールであるかどうかを確認するためにGetClassName()を使用しますES_PASSWORDスタイルが適用されます。

ただし、フォアグラウンドアプリケーションが標準のWin32 UIコントロールを使用していない場合やカスタム描画している場合など、すべてのベットはオフになっています。

関連する問題