ウィンドウが蜂が活性化されているときと非アクティバデットを追跡するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3497878

質問

私はタスクバーを作成しており、アクティブウィンドウがいつ変更されたかを知る必要があります。タイマーを使いたくありません。私は多分私が傍受できるwndprocメッセージがあると思います。

私はC#を使用しています

役に立ちましたか?

解決

それには、setwindowshookex、wh_shellによってセットされたフックが必要です。コールバックは、hshell_windowactivatedやhshell_windowcreatedなどの通知を取得し、トップレベルのウィンドウで何が起こっているかを知ることができます。 SDKの記事をチェックしてください」ShellProc「入手できる通知の完全なリストについては、それらのほぼすべてが独自のタスクバーを実装することに関連しています。

それは良いニュースでした。悪いニュースは、WH_Shellがグローバルなフックであるということです。別のプロセスに注入できるDLLが必要です。問題は、管理されたコードでそのDLLを書くことができないことです。管理されていないプロセスに管理コードを注入することは不可能です。

再び良いニュースに戻ると、誰かがその問題を解決し、注射可能で管理コードと相互作用できる無管理のDLLを作成しました。プロジェクト ここにある. 。それがどれほど良いかはわかりません。私はそれがまったくuacの証拠ではないかもしれないと思う。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top