問題タブ [mouse-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.
delphi - Delphi を使用してマウスのダブルクリックをフックするオーバーヘッドの少ない方法はありますか?
Delphi XE でやりたいことは次のとおりです。
別のアプリケーションでダブルクリックをキャプチャし、ダブルクリックが発生してマウスの下のテキストが強調表示されると、強調表示されたテキストに基づいてアプリケーションで一連のイベントがトリガーされます。
システム全体のマウス フックを使用してこれを行う方法は認識していますが... 多くの場合、私のアプリケーションと他のアプリケーションはターミナル サービスまたは citrix 環境でホストされるため、マウスでこれを行うのはかなり気が進まない資源コストが気になるのでフック。(私は、ユーザーごとに 1 つずつ、何百ものマウス フックをホストしているサーバーを想像しています...身震い)。私は慎重すぎますか?マウスフックのパフォーマンスと安定性はどのくらいですか? TS または citrix 環境ではどうですか? 私の直感が正しく、複数のフックのコストが高すぎる場合、これを行う別の方法はありますか?
他のアプリケーションのソース コードにアクセスすることはできません。テキストが見つかったサード パーティのリッチエディット コントロールは、すべての認識を超えて変更されており、公開されたときに API に応答しません。ヘルプ?
c# - アクティブなウィンドウを基準にしたマウスクリック位置を取得する
低レベルのフックを使用して、モニターの境界に沿った任意の場所でマウスのクリック位置を取得する方法を理解した後、通常はpcsの場合x: -1680 to +1920
との間の値を含むXY座標を受け取ります。y: 0 to 1200
簡単です!
GetForegroundWindow()
ここで問題となるのは、使用している特定のウィンドウに対するマウスの位置を計算してGetWindowRect(HandleRef hWnd, out RECT lpRect)
、アクティブなウィンドウの座標を取得することです。
私が立ち往生しているのは、ウィンドウに対するマウスクリックの座標を計算するために、現在アクティブなデスクトップ(アクティブとはクリックが発生したモニターを意味します)が必要です。
残念ながら、私はそのようなGetActiveMonitor()
または類似のAPI呼び出しを見つけることができなかったので、誰かが私を正しい方向に向けることができれば幸いです。
c# - 現在実行中のアプリケーションを削除せずにマウスフックを設定しますか?
実行時にGUIを開くプログラムがあります。次に、dllimportsを使用してマウスフックを設定したいのですが、それを機能させるには、この同じクラスで新しいApplication.Run()を呼び出す必要があります。ただし、残念ながら、これにより元のGUIが削除されます。元のメッセージループでマウスフックを実行する方法はありますか?私はここで少し迷っています。
コードのいくつかの重要な部分は次のとおりです。
。
。
c# - IntPtr を CWPSTRUCT にキャスト
私のC#プロジェクトでは、別のプログラムからのマウスクリックをインターセプトしようとしていますが、特定のhwndからのものだけです.lParamを使用してメッセージをフィルタリングできることをここで読みましたが、成功していません実際にHwndを取り戻すことができるものにキャストします。
これは、グローバル マウス フックを設定する方法です。
次に、この関数でメッセージをキャッチします。
次に、CWPSTRUCT を次のように作成しました。
そして、これがおそらくうまくいかない部分です...私は2つのことを試しました:
または、これは私が入手した安全でないバージョンです:
最初のオプションを使用すると、常に hwnd 部分が 0 になり、安全でないバージョンでは何も得られません...ここで何が間違っているのか本当にわかりません。どんな助けでも大歓迎です:)
ありがとう
visual-c++ - WM_MOUSEWHEEL は、Windows 7 / 64 ビットで一方向にしか機能しません。
ゲームの 3D 効果用にこのコードを作成しました。このコードは、画面の位置とズームインとズームアウトを変更するのに役立ちます!
しかし、win 7 64 ビットで実行すると、マウス ホイールを前後にスクロールするとズームインのみになりますが、Windows 7 32 ビットで実行すると正しく動作します。
勝つためにどうすれば修正できますか?
助けてくれてありがとう!!!!
c++ - マウスとキーボードのイベントをインターセプトし、C++ でカスタム イベントを送信する方法は?
さて、アクティブなウィンドウ/アプリケーションに報告される前に、マウスとキーボードのイベントをインターセプトするプログラムを書きたいと思います。私のプログラム ロジックに基づいて、カスタム キー イベントを送信できるようにしたいと考えています。
例: マウス ボタンを押したままにすると、任意のキーを押すと、次のアルファベット文字が送信されます。したがって、マウスの右ボタンを押したまま 'a' を押すと、アプリケーションはそれを 'b' キーを押したと認識します。
WinAPI メッセージを傍受するためのフックと方法を簡単に調べましたが、これが探している解決策であるかどうかはわかりません。私が読んだことによると、これらのソリューションの一部では、目的のアプリケーションに DLL を挿入する必要があります。私のプログラムは、実行中のアプリケーションで動作する必要があります。
また、これらのソリューションのほとんどが C# にあることに気付きました。個人的な好みの問題として、C++ を使用してこのプログラムを作成したいと考えています。C# を使用する必要がある理由はありますか?
ポインタやアドバイスをいただければ幸いです。
c# - Set mouse position not working c#
画面全体でマウスが移動できる場所の境界を変更する小さなユーティリティを作成しようとしています。ここで見つけたグローバル マウス フック ライブラリ(バージョン 1 を使用しています) を使用し、それが生成するイベントからのマウス位置情報を独自の関数に渡します (今のところ動作することを確認するためのテストです)。 .
実行すると、マウスは指定されたポイントに点滅するように見えますが、移動イベントの場合は変更前の場所に即座に戻ります。クリック イベントによって行われた場合にのみ、実際に新しい位置に留まります。
c++ - Windowsでマウスフックからカーソル位置を設定するにはどうすればよいですか?
私は、マウスカーソルが画面の端に移動したことを検出し、反対側の端に移動して、意味がある場合は継続的なデスクトップ効果を作成する小さなアプリを作成しようとしています。
以下は、他の誰か(マウスフック部分)からのコードです。今のところ、マウスを固定位置に移動するためにSetCursorPosを追加して調整しました。実行すると、SetCursorPosはtrueを返します。これは、呼び出しが成功したことを意味すると思いますが、マウスは移動しません。私は、このようなものを防ぐ後のWindowsバージョンのセキュリティ制約についてどこかで読んだことがありますが、これは理にかなっていますが、ソースはこれがどれほど真実であるかについて不明でした。なぜこれが機能しないのか誰かが知っていますか?
ありがとう、以下のコード:
vb.net - VB.Net 2012 でのグローバル マウス フック/イベントへの応答
VB.Net 2012 と互換性のあるグローバル マウス フックのソース コード例を探しています。
アプリの要件は基本的です。中クリックをグローバルにインターセプトします。
私が見つけた事実上すべての例は、時代遅れであるか、バグがあるか、意味をなさないエラーを生成し、VS 2012 Pro で解決できません。
この質問が C# と VB について何度も尋ねられているとは思わないので、これは難しいものであるに違いありませんが、答えは見つかりませんでした。
ありがとう。
リッチ
c# - UI を使用したグローバル キー/MouseHook
画面上にキーボードとマウスがある C# アプリケーションを作成したいと考えています。
クリックされたすべてのキーまたはボタンは、たとえばキーの 1 つに色を付けることによって、このアプリケーションで表示される必要があります (私はその方法を知っています)。これは、アプリケーションがフォーカスされていない場合にも機能するはずです。
現在、私は正常に動作するグローバルキーとマウスフックを使用しています。
問題は、キーフックが一度に 1 つのキーしかインターセプトしないことです。つまり、一度に表示できるキーは 1 つだけです。一度に複数のキーを画面に表示できるようにしたい。KeyListeners は、アプリケーションの外部では機能しないため、残念ながらオプションではありません。これを可能にする方法を知っている人はいますか?
私が使用しているキーフックは次のとおりです。