2

ボーランド C++ ビルダーを使用します。

ITaskbarList3を使用する前に、Windows が必要とすることを行います。

https://msdn.microsoft.com/en-us/library/windows/desktop/dd391692.aspx

アプリケーションは RegisterWindowMessage(L"TaskbarButtonCreated") を呼び出し、wndproc でそのメッセージを処理する必要があります。アプリケーションが ITaskbarList3 メソッドを呼び出す前に、そのメッセージを受信する必要があります。

ただし、これは常に機能するとは限りません。RegisterWindowMessage() が成功したにもかかわらず、私が待っているメッセージは決して来ません。

掘り下げた後、問題は、アプリケーションが「runas」で再起動したとき、起動直後、ユーザー設定に基づいて、アプリケーションを昇格して実行する必要があることに関連していることがわかりました。

2 回目の (現在は昇格した) 実行では、私が待っているメッセージは決して来ません。

これは、新しいインスタンスが作成されたにもかかわらず、Windows が既にこのメッセージを送信しており、再度メッセージを送信していないためだと思います??

メッセージが 2 番目の (昇格された) 実行で既に送信されているに違いないと仮定し、とにかく ITaskbarList3 を使用することはどのくらい安全ですか?

4

1 に答える 1