回答:このメソッドに相当するネイティブ マネージはありません。ただし、マネージ コード API の良い例はpinvoke.netにあります。
こんにちは、みんな
「トレース モード」のフラグを受け入れるアプリケーションがあります。トレース モードは、テキスト ボックスを含むフォームをオンにします。テキスト ボックスには、カスタム TraceListener オブジェクトを介して出力が表示されます。コマンドラインに -t が存在する場合、トレース ウィンドウは優先度の低いスレッド内から開かれます。何か問題が発生したときにアプリケーションを診断しようとしているコンサルタントにとって便利です。
何人かのコンサルタントは、起動時にいくつかのあいまいなキーの組み合わせを押すと、トレース モードがオンになり、コマンド ラインに移動して毎回アクティブにする必要がなくなるようにするように要求しました。合理的な要求です。
さまざまなコンポーネントがインスタンス化および初期化されるため、メイン フォームが作成される前に、コンサルタントが気にする多くの重要な情報が Trace に表示されるため、このためのボタンやメニュー項目を提供したくありません。
.NET で現在のキーボードの状態を検出するのに十分単純なはずだと思っていましたが、どこを見ても [DllImport("user32.dll", EntryPoint = "GetKeyboardState", SetLastError = true) を使用するようにアドバイスされているようです。 ] 何が起こっているかを検出する方法として。
それはすべてうまくいっています-私はそれで満足しています。ただし、一般的な経験則として、独自のロールを作成する前に、Windows 関数にネイティブの .NET マネージ コードを使用するようにしています。
ネイティブ .NET メソッドまたは user32.dll の GetKeyboardState に相当するものはありますか?