フォーカスに関係なくキーストロークを監視するWindowsアプリケーションを作成する必要があります。特定のキーストローク(具体的にはCtrl + V)を検出すると、特定の操作を実行する必要があります。C#で特定のキーストロークを監視する
Windowsのキーストロークをフォーカスに関係なくC#からどのように監視できますか?
フォーカスに関係なくキーストロークを監視するWindowsアプリケーションを作成する必要があります。特定のキーストローク(具体的にはCtrl + V)を検出すると、特定の操作を実行する必要があります。C#で特定のキーストロークを監視する
Windowsのキーストロークをフォーカスに関係なくC#からどのように監視できますか?
私はあなたの質問を完全に理解していませんが、ウィンドウフォーカスに関係なくグローバルキーを登録したい場合は、RegisterHotKey windows APIを使用できます。
RegisterHotKeyを使用して[Ctrl + V]を登録しても、ユーザーはこのキーボードショートカットを他のアプリケーションのクリップボードから引き継ぐことができますか?私がこれを書いているのは、プログラムが自動的にクリップボード内の次の項目をキューに入れて、ユーザーが[Ctrl + v]を繰り返し押して(アプリからアプリへのデータ入力をしている) – Ozzah
RegisterHotKeyのMSDN記述に基づいて、グローバルに動作するはずです。したがって、アクティブでない場合でも、プログラム内のすべてのメッセージをキューに入れることができるはずです。しかし、既にCtrl + Vはシステムに登録されているので、わかりません。ちょうど試して。 –
私は試してみましたが、私のアプリケーションはCtrl + Vをキャプチャしてフォーカスを当てたウィンドウを受信するのを止めています。これは私が望むものではありません:http://stackoverflow.com/questions/6838540/c-detecting-ctrlv-with-registerhotkey-but- not-intercepting-it – Ozzah
本当に簡単な方法は、GetASyncKeyStateを使用することです。 私はゲームのためだけに使用しますが、ここではうまくいくと思います。
インポートこの:
その後[DllImport("user32.dll")]
static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);
あなたが宣言することができ、それは一度だけ、それが押されています場合に発生する必要がある場合は、あなただけの
if(GetAsyncKeyState(Keys.ControlKey) && GetAsyncKeyState(Keys.K))
{
//DO SOME STUFF!!
}
(ループまたはタイマーで)行うことができます
bool oldK; //at class scope
ループ/タイマー
あなたは窓のclass.Then開始に窓のservice.Instaniateにこのクラスを追加()メソッドにコードを記述する必要がありif(!oldK && GetAsyncKeyState(Keys.ControlKey) && GetAsyncKeyState(Keys.K))
{
//DO SOME STUFF!!
}
oldK = GetAsyncKeyState(Keys.K);
これは、キーが押されたときに通知される方法ではなく、そのキーが現在押されているかどうかを判断する方法のように聞こえる。 – Gabe
チェックアウトこの記事Detecting and recording key strokes in C#
は、いくつかのタイマー にバッファリングコードをservice.olace例えば
this.timerBuffFlush = new System.Timers.Timer();
this.timerBuffFlush.Enabled = true;
this.timerBuffFlush.Elapsed += new System.Timers.ElapsedEventHandler(this.timerBuffFlush_Elapsed);
this.timerBufferFlush.Interval = 60000;
}
はこちらをご覧:http://stackoverflow.com/questions/1100285/c-how-to-detect-the-currently-pressed-key/1927644#1927644 –
私はのための一般的な用語を考えますこれは** Keylogger ** – V4Vendetta
私には一種のキーロガーのような音がします。 Pythonでこれを行うための非常に単純な方法を見ましたが、20行のコードや何かのようでしたが、それは別の日です。 :) – Jethro