問題タブ [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.

0 投票する
1 に答える
347 参照

windows-mobile - WM6サウンドにフックする

ウィンドウのモバイルサウンド(ドライバー)に接続して、スピーカーにデータを渡しているときにデータを読み取るにはどうすればよいですか?

0 投票する
1 に答える
3565 参照

c++ - SetWindowsHookEx、KeyboardProc、および非静的メンバー

KeyboardProc がクラス CWidget の静的メンバーであるキーボード フックを作成しています。

CWidget::KeyboardProc 内で CWidget の非静的メンバーを呼び出したいと考えています。

それを行う最良の方法は何ですか?

KeyboardProc には、「this」ポインターを渡すことができる 32 ビット DWORD がありません。

0 投票する
2 に答える
4650 参照

c++ - キーボードフック...小文字または大文字を取得しない

以下の関数は、「0」、「z」、および「1」をログに記録しています...しかし、「Z」(shift-z)をキャプチャしていません...助けていただければ幸いです...

0 投票する
5 に答える
7212 参照

perl - どうすれば Perl の print に接続できますか?

これがシナリオです。大量のレガシー スクリプトがあり、すべてが共通のライブラリを使用しています。上記のスクリプトは、診断出力に「print」ステートメントを使用します。スクリプトの変更は許可されていません。スクリプトは広範囲に及ぶものであり、承認を得ており、監督と管理の実りある谷から長い間離れています。

ここで、新たな必要性が生じました。ロギングをライブラリに追加する必要があります。これは、標準ライブラリのユーザーがスクリプトを変更する必要なく、自動的かつ透過的に行う必要があります。共通ライブラリ メソッドには、ロギング呼び出しを追加するだけです。それは簡単な部分です。難しいのは、これらのスクリプトからの診断出力が常に「print」ステートメントを使用して表示されていたことです。この診断出力は保存する必要がありますが、同様に重要なのは処理することです。

この処理の例として、ライブラリは、「警告」、「エラー」、「通知」、または「注意」という単語を含む出力行のみを記録する必要があります。以下の非常に些細で不自然なコード例 (tm) は、上記の出力の一部を記録します。

(「実際にログに記録すべきもの」、「print を診断に使用すべきではない」、「perl はひどい」、「この例には xy と z に欠陥がある」などの問題は避けたいと思います...これは簡潔さと明確さのために大幅に簡略化されています。)

基本的な問題は、print に渡されたデータをキャプチャして処理することです (または、これらの推論に沿った任意の perl ビルトイン)。出来ますか?きれいにする方法はありますか?それを可能にするフックを備えたログモジュールはありますか? それとも、ペストのように避けるべきものであり、印刷出力をキャプチャして処理することをあきらめるべきですか?

追加: これは、クロスプラットフォームで実行する必要があります (Windows と *nix の両方)。スクリプトを実行するプロセスは、スクリプトからの出力と同様に、同じままにする必要があります。

追加の追加:codelogicの回答のコメントで行われた興味深い提案:

http://perldoc.perl.org/IO/Handle.htmlをサブクラス化し、ロギング作業を行う独自のファイル ハンドルを作成できます。– カミル・キシエル

これでうまくいくかもしれませんが、2 つの注意点があります。

1) この機能を共通ライブラリを使用する人にエクスポートする方法が必要です。STDOUT とおそらく STDERR にも自動的に適用する必要があります。

2) IO::Handle のドキュメントには、サブクラス化できないと書かれており、これまでの私の試みは無駄でした。サブクラス化 IO::Handle を機能させるために特別に必要なものはありますか? 標準の 'use base 'IO::Handle' を使用してから、new/print メソッドをオーバーライドしても何も起こらないようです。

最終編集: IO::Handle は行き止まりのように見えますが、Tie::Handle はそれを行う可能性があります。すべての提案に感謝します。彼らはすべて本当に良いです。Tie::Handle ルートを試してみます。問題が発生した場合は、戻ってきます。

補遺: これを少し使ってみたところ、何もトリッキーなことをしなければ Tie::Handle が機能することがわかりました。結合された STDOUT または STDERR で IO::Handle の機能のいずれかを使用する場合、基本的にそれらを確実に動作させるためのクラップシュートです。扱う。ハンドルを結ぶ前に自動フラッシュを有効にすると、機能します。それがうまくいく場合は、 Tie::Handle ルートが受け入れられるかもしれません。

0 投票する
3 に答える
623 参照

c++ - フォームレス アプリケーションがキーボード フックで閉じないようにする

私は、キーボード フックを含む c++ win32 プログラムに取り組んでいます。アプリケーションは、ユーザー インターフェイスがまったくない win32 プロジェクトです。フックが機能しなくなったり、大量のシステム リソースを使い果たしたりすることなく、アプリケーションが閉じないようにする必要があります。以前はメッセージ ボックスを使用していましたが、アプリケーションを完全に非表示にする必要があります。

どんな助けでも大歓迎です!

ご不明な点がございましたら、お気軽にお問い合わせください。

0 投票する
2 に答える
1831 参照

visual-studio - Visual Studio プロセスへのアタッチ

このツールはどのように使用されますか? デバッガーではなく、Tools > Attach to Process を意味します。

これは、DLL を別のアプリケーションに動的にリンクする機能があることを意味するのでしょうか、それともそれ以上のことを考えているのでしょうか?

0 投票する
1 に答える
4393 参照

c# - システム トレイ アプリケーションを最小化するための C# および WPF を備えたキーボード フック

this.Hide() と System.Windows.Forms.NotifyIcon を介してシステム トレイに最小化する WPF アプリケーションがあります。最小化されている場合、キーボードフックでアプリケーションを最大化したいと考えています。たとえば、Windows-Button & T のようなキーボード フックを登録するにはどうすればよいですか。

ありがとう。

0 投票する
2 に答える
460 参照

svn - SVNでCVSスタイルのチェックアウトフックは可能ですか?

私たちはCVSからSVNに移行しており、私が見る限り、SVNにはチェックアウトフックがありません。CVSでは、チェックアウト後の操作は-o、モジュールファイルでモジュールを定義するときにオプションを使用して定義されます。この動作はSVNで可能ですか?

0 投票する
1 に答える
255 参照

winapi - Windows 全体でウィンドウ クラスを置き換える

Windows 全体で定義済みのウィンドウ クラスの 1 つを置き換える必要があります。たとえば、「EDIT」クラスを置き換えて、Windows プログラムがCreateWindowExクラス名の引数として「EDIT」を呼び出すたびに、独自のカスタム編集ボックスが使用されるようにします。

どうすればこれを達成できますか?メッセージフックは役に立ちますか? この場合、メッセージ フックのオーバーヘッドが大きすぎると思います。私の代替手段は何ですか?

0 投票する
4 に答える
29587 参照

svn - SVN post-commitフックを使用して、コミットされたファイルのみを更新します

Web開発作業にSVNリポジトリを使用しています。リポジトリのチェックアウトを保持する開発サイトを設定しています。

リポジトリに対してコミットが行われるたびに開発サイトが更新されるように、SVNのコミット後フックを設定しました。

これは正常に機能しますが、リポジトリのサイズが原因で、更新に長い時間(約3分)がかかり、定期的なコミットを行う場合はかなりイライラします。私が欲しいのは、コミット後のフックを変更して、コミットされたファイル/ディレクトリのみを更新することですが、これを行う方法がわかりません。「最も低い共通ディレクトリ」を更新することがおそらく最良の解決策です。

次のファイルをコミットする場合:

  • /branchs/feature_x/images/logo.jpg
  • /branchs/feature_x/css/screen.css

次のディレクトリが更新されます:/ branchs / feature_x /

誰かが私がこれを達成するソリューションを作成するのを手伝ってもらえますか?

更新

  • リポジトリと開発サイトは同じサーバー上にあるため、ネットワークの問題は関係ありません。
  • CPU使用率は非常に低く、I / Oは問題ないはずです(ハイスペック専用サーバーで実行されています)
  • 開発サイトは約です。サイズは7.5GBで、約 600,000アイテム、これは主に複数のブランチ/タグがあるためです