タスクバーを作成していますが、アクティブウィンドウがいつ変更されるかを知る必要があります。タイマーは使いたくない。傍受できるWndProcメッセージがあるのではないかと思います。
私はC#を使用しています
タスクバーを作成していますが、アクティブウィンドウがいつ変更されるかを知る必要があります。タイマーは使いたくない。傍受できるWndProcメッセージがあるのではないかと思います。
私はC#を使用しています
これには、SetWindowsHookEx、WH_SHELLによって設定されたフックが必要です。コールバックはHSHELL_WINDOWACTIVATEDやHSHELL_WINDOWCREATEDなどの通知を受け取るため、トップレベルのウィンドウで何が起こっているかを知ることができます。取得できる通知の完全なリストについては、 「 ShellProc 」のSDKの記事を確認してください。それらのほぼすべてが、独自のタスクバーの実装に関連しています。
それは良い知らせでした。悪いニュースは、WH_SHELLがグローバルフックであるということです。別のプロセスに挿入できるDLLが必要です。問題は、そのDLLをマネージコードで記述できないことです。マネージコードをアンマネージプロセスに挿入することはできません。
再び良いニュースに戻りますが、誰かがその問題を解決し、注入可能でマネージコードと相互運用できるアンマネージDLLを作成しました。プロジェクトはこちらです。それがどれほど良いかわかりません。私はそれが完全にUACの証拠ではないかもしれないと思う。