問題タブ [keyboard-hook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ユーザーのキーボード入力を変更できますか?
このキーボード フック コードを見つけました。目的のために少し変更しようとしています: http://blogs.msdn.com/toub/archive/2006/05/03/589423.aspx
概要として、ユーザーにキーを押して「E」と言ってもらい、キーボードがフォーカスされているアプリに別の文字「Z」を返すようにします。
変更した関連メソッドは次のようになります。
コンソールはこれを次のように正しく出力します。
ただし、フォーカス中のアプリは「Z」ではなく「E」と入力します。なんで?フックされたキーボード入力を「E」の代わりに「Z」を含むように変更しました。コンソールの行は、それが正しく変更されたことを示しています!
私が理解しているように、を呼び出すと、return CallNextHookEx(_hookID, nCode, wParam, lParam);
「これを今すぐ印刷」コマンドが開いているアプリに送信されます。それが機能する方法ではありませんか?必要な文字を入力できない原因はありますか? AutoHotkey のようなアプリが入力キーを受け取り、それをチェックして、別の文字を返すことは知っています。ここで同じことを行うにはどうすればよいですか?
ありがとう!
c# - 「Windows Input Simulator」の C# インターフェイスを機能させるのに役立ちます
これは、私がやろうとしていることには完璧に見えます。SendInput() をいじるのをやめて、他の誰かにやってもらいましょう!
http://inputsimulator.codeplex.com/
問題は、そこのホームページと同じようにコードを簡単に動作させるためのドキュメントがないことです。誰かが私のプログラムに必要な「他のコード」を手伝ってくれるのでInputSimulator.SimulateKeyPress(VirtualKeyCode.SPACE);
、例のように入力できますか?
私は始めました:
[DllImport("InputSimulator.dll", CharSet = CharSet.Auto, SetLastError = true)]
これは正しいと思います。他に何が必要ですか?
ありがとう!
c++ - グローバル キーボード フックが機能しない
グローバルキーボードフックを作成しました。
フックは DLL で作成されます。
この dll をロードし、フック dll のインストール機能を呼び出す 1 つの EXe を作成しました。
KeyBoardHookProc のデバッグ ブレークポイントは、exe を起動したときに 1 回だけヒットします。
exeは閉じない限り実行を続けますが、キーボードから何か他のものを入力すると、フックプロシージャが呼び出されません。
この理由は何でしょうか?
これは、グローバル キーボード フックを設定する正しい方法ではありませんか?
c# - キーボードウェッジカードスキャナーを読み取るためのC#およびWPF用の高レベルグローバルキーボードフック
.NETマネージコードでサポートされている唯一のキーボードフックは、低レベルのキーボードフック(WH_KEYBOARD_LL)です。
WPF / C#でのグローバルキーボードフック(WH_KEYBOARD_LL)の使用を参照してください。
現在、上記のコードがアプリケーションで機能しているので、カードをスワイプすると、すべてのキーストロークのリストが表示されます。問題は、「%」や「;」などの区切り文字を入力することです。Alt + Numpad +が送られてきますか?これらのシンボルに対応するWPFキーオブジェクト。
私の質問:これをより高レベルで動作させる方法、つまり、すべてのキーボードコマンドから生成された文字列をキャプチャする方法はありますか?
乾杯!
c++ - Qt アプリケーションで Win32 フックを使用することは可能ですか?
Qt アプリケーションで win32 キーボード フック関数 ( SetWindowsHookEx 、 SetWindowsHookEx ) を使用できるかどうかを知りたいです。
可能であれば、Qt で SetWindowsHookEx 、 SetWindowsHookEx 関数を使用するサンプル コードを提供してください。
//2010 年 2 月 18 日更新 //
QTでそれを行う方法はまだわかりません。
しかし、回避策として、vc++ Express Edition を使用して win32 dll を作成し、フック コマンドを dll 関数内に配置しました。そして、QLibrary クラスを使用して Qt からその dll 関数を呼び出します
init() は、呼び出されている ekhook.dll の関数です。
c# - VMware 仮想マシンでの実行中にキーボード入力を取得するにはどうすればよいですか?
vmware workstation 6.5-7.0.1 または vmware player 3.0.0 を使用して仮想マシンにログインしています。仮想マシン内で作業しています。次に、仮想マシン内のキー (たとえば、Delete-Key ですが、すべてのキーで機能するはずです) を押します。
仮想マシンの外部で実行されている C# アプリケーションで「キー プレス イベント」を認識したいと考えています。
これを行う方法を考えられますか?
c# - 低レベルのキーボード フックを使用して、タスク スイッチ キー (winkey、alt-tab、alt-esc、ctrl-esc) を抑制します。
低レベルのキーボード フックを使用して、タスク スイッチ キー ( winkey、alt+ tab、alt+ esc、ctrl+など)を抑制しようとしています。esc
次のLowLevelKeyboardProc
コールバックを使用しています。
ただ、CTRL+のESC組み合わせをどう抑えればいいのか途方に暮れています。助言がありますか?ありがとう。
delphi - キーボード フック プロシージャの問題
背景: 私のフォームには TWebBrowser があります。フォームを ESC で閉じたいのですが、TWebBrowser がキーストロークを食べてしまうので、キーボード フックを使用することにしました。
問題は、フォームを同時に複数のインスタンスで開くことができることです。
何をしても、状況によっては、フォームの 2 つのインスタンスが開いている場合、そのうちの 1 つを閉じると、もう 1 つも閉じます。
サンプルコードをいくつか添付しました。問題の原因についてのアイデアはありますか?
c# - グローバル キーボード フックの代わりに GetKeyboardState() をポーリングすることは可能ですか?
GetKeyboardState()
グローバル キーボード フックの代わりとしてポーリングすることは可能ですか?
c# - GC.KeepAlive(KeyboardHookPointer) のスパムで何か問題がありますか?
GC.キープアライブ()
指定されたオブジェクトを参照します。これにより、現在のルーチンの開始からこのメソッドが呼び出されるポイントまで、ガベージ コレクションの対象外になります。
単に参照を保存する以外に GC.KeepAlive が何をするのかよくわからないので、ガベージ コレクターはオブジェクトを収集しません。しかし、オブジェクトで GC.KeepAlive() を呼び出すと、オブジェクトが収集されなくなりますか? それとも、GC.KeepAlive() を頻繁に再呼び出しする必要がありますか (そうであれば、どのくらいの頻度で)? キーボードフックを生かしておきたい。