質問: C#コンソールアプリケーションでキーボードのフックができない こちらのライブラリのKeyboardHook.csをプロジェクトに追加し、
回答: デバッグ実行時にうまくいかない(コマンドラインから直接exeを実行した場合は問題ない)のであれば、プロジェクトのプロパティのデバッグタブの 「Visual Studio ホスティング プロセスを有効にする」 のチェックを外すといいかも。 追記 あぁ、そういうことだったのね。 メッセージループというのは Windows アプリケーション ( コンソールアプリケーションではない ) がキー入力やマウスクリックなどに応答するようにするためにもので、具体的には↓の While のループのこと。 フォームアプリケーションも、表には現れないけどメッセージループの動作が組み込まれてるんだろうね。 結論を言うと、KeyboardHook.cs が使っている SetWindowsHookEx という Windows API は、メッセージループを持っているアプリケーションに対してのみ有効、ということなんだと思う。