問題タブ [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++ - C/C++ で Windows 関数をフックするにはどうすればよいですか?
Windows が kernel32.dll に実装した関数foo()
があり、それが常に true を返す場合、プログラム「bar.exe」にその Windows 関数をフック/迂回させて、代わりにすべてのプロセスに対して false を返すようにすることはできますか?
したがって、たとえば、私の svchost が を呼び出すとfoo()
、true ではなく false が返されます。現在実行中の他のすべてのプロセスについても、同じアクションが予想されます。
もしそうなら、どのように?システム全体のフックか何かを探していると思います。
c++ - フックフィルター機能でのWindowsメッセージのフィルタリング
Windowsフックを使用して別のアプリケーションのメッセージを取得しようとしています。SetWindowsHookExを使用してWH_GETMESSAGEフックを設定しました。これはDLLを介して行われます。GetMsgProc関数(ターゲットアプリケーションがメッセージを受信するたびに呼び出す必要があります)で、メッセージのタイプに基づいてアクションを実行したいと思います。ただし、このifステートメントで問題が発生しています。
何らかの理由で、MessageBoxが作成されることはありません。アプリケーションがSpy++からWM_COMMANDメッセージを受信していることを知っています。IFステートメントを取り出すと、さまざまなメッセージを受信するときにMessageBoxが何度も作成されます。
svn - 共通の/有用なSVN事前コミットフックを共有する
SVNの一般的および/または有用なpre-commitフックは何ですか?
jquery - jQuery(またはプレーンJS)を使用して新しいDOM要素を追加することにフックします
明確にするために:私は既存のフックを新しいDOM要素に配置する方法を尋ねていません。live()関数と古いlivequeryプラグインについて知っています。私は何か他のものを求めています。
私が知りたいのは、新しいDOM要素の作成そのものにフックする方法です。私が尋ねている理由は、ファーストパーティのスクリプトを制御できないサードパーティのユーザーJSスクリプトを作成しているからです。これらのファーストパーティスクリプト(難読化されている)は、新しいDOM要素を追加することによってページを定期的に更新します。これらの要素を追加してからコードを実行したい。
$('...').bind('ajaxSuccess'、function().....)を使用すると、一部の追加で機能しますが、すべてではありません。
64-bit - アプリケーションフック :: x64 システム
64 ビット システムで 64 ビット プロセスと 32 ビット プロセスの両方をフックするための秘密はありますか?
現在作成中のアプリケーションでは、64 ビット プロセスをフックできる必要があります。32 ビット プロセスのフックは 64 および 32 ビット システムで正常に機能しますが、64 ビット アプリケーションをフックしようとしてもメッセージが受信されません。
このようなことをするべきではないと誰かに言われる前に、これが私にとって非常に必要なことであることを説明させてください.グローバルシステムフックを設定しないと、私のアプリケーションは役に立たない/無意味になります.
このアプリケーションは C#/WPF で作成されていますが、実際のフックには C++ dll を使用しています。64 ビット システム用の dll をコンパイルしようとしましたが、まだ本来の動作をしていません。32 ビット システム用にコンパイルして実行すると、正確に動作します。
*編集:: ウィンドウ メッセージのフックについて話している - WH_CBT & WH_SHELL メッセージ
python - Pythonでグローバルを非推奨としてマークする方法は?
関数を非推奨としてマークし、その関数が使用されるたびに警告が表示されるようにするデコレータを見てきました。グローバル変数に対して同じことをしたいのですが、グローバル変数のアクセスを検出する方法が思いつきません。私は globals() 関数について知っており、その内容を確認できましたが、実際に使用されているかどうかではなく、グローバルが定義されているかどうかがわかります (関数が非推奨であり、すべてが削除されていない場合でもそうです)。 . 私が考えることができる最良の代替案は、次のようなものです。
しかし、DEPRECATED を「3」とまったく同じように動作させる方法の問題以外に、DEPRECATED がアクセスされるたびに検出できるようにするために何ができるかはわかりません。私ができる最善の方法は、グローバルのすべてのメソッドを反復処理し (Python ではすべてがオブジェクトであるため、「3」にも文字列などに変換するためのメソッドがあるため)、それらをすべて非推奨にするために「装飾」することだと思います。しかし、それは理想的ではありません。
何か案は?他の誰かがこの問題に取り組みましたか?
c++ - アプリケーション内でのフック
フックのようなシステムを実装するにはどうすればよいですか?
これは私のセットアップです:
私はこれらの静的ライブラリを持っています:
- A.lib
- B.lib
A と B は、同じアプリケーション内に一緒に含めることができるモジュールのようなものです。問題は、B に公開したい関数が A にあるということです。コールバック リストを使用してこれを行っていましたが、このアイデアには満足していません。なのでWin32APIのようなフック的な仕組みは実装できると思いますが、専門家の意見を聞きたいです。
もちろん、両方のソースコードにアクセスできます。
注:私はクラスを使用していないことを忘れていました。設計上の決定により、このプロジェクトのクラスまたはオブジェクトを作成できないため、ここでは継承のようなものは許可されていません。
svn - SharpSvn を使用して pre-commit フックを作成します。svnlook propget がありませんか?
古い Subversion precommit フックを書き直しています。私たちの会社では、コミット前にプロパティ svn:needs-lock が設定されている場合にのみ、バイナリ ファイルがコミット時に許可されるようにする必要があります。
フックの作成を開始しましたが、フックのすべての部分が機能しているように見えますが、プロパティが設定されている場合、読み取り方法がわかりません。
SvnLookClient には SvnLookClient.GetProperty メソッドがあると思いますが、私が見るのは SvnLookClient.GetRevisionProperty だけです。残念ながら、GetRevisionProperty は問題のファイルを渡すことを許可していません。ここで何が欠けていますか?
結局のところ、svnlook propget では、リポジトリ、トランザクション、プロパティ名、およびリポジトリ内のパスを渡すことができます。
c# - 赤外線受信機をプログラムする
HTPC 用の IR レシーバーの購入を考えています。
IRレシーバー用のソフトウェアを自分で作れないだろうか。
赤外線受信機は Windows でどのように動作しますか?
IR レシーバー ドライバーをインストールして、リモコンのキーを押すとどうなりますか? フックを使用してC#でボタンを押すことはできますか? 押されたボタンを捕まえることができれば、それで遊ぶのは楽しいでしょう:)
winapi - WH_MOUSEがマウスをキャプチャしないSetWindowsHookExは、HTCAPTION領域上を移動します
SetWindowsHookExとWH_MOUSEを使用して、マウス移動イベントをキャプチャしようとしています。HTCAPTION領域以外のすべての場所で機能します(少なくとも私のコードサンプルでは)。この動作への参照が見つからないため、マウスの動きを監視するために同じことを行う別のアプリケーションにwindbgしようとしました。使用されるメソッドもWH_MOUSEであり、マウスがキャプション領域上にある場合でもイベントが生成されます。したがって、機能しない場合を除いて、機能するはずです。
何か案は ?
編集:私はこれを使用してすべてのプロセスをフックしています。アプリケーションの内部ウィンドウにメッセージを転送する別のdllを作成しました。dwThreadId=0を使用します。キャプション領域でもマウスクリックが発生しません。