0

Visual Studio 6 を使用して作成された大規模で古いアプリケーションがあります。セッション 0 でサービスの 1 つから呼び出されたときに、Windows 7 で Shell_NotifyIcon が失敗するという問題があります。サービスはトレイ アイコンを配置しようとしています。

この失敗の原因と問題を回避する方法を知っている人はいますか?

4

2 に答える 2

1

おそらく、Session 0 Isolation 機能が追加されたため、サービスがユーザーのデスクトップと直接対話できなくなったためです。ユーザーと対話する権限を持つサービスを構成するには、SERVICE_INTERACTIVE_PROCESS修飾子をサービス レジストリ キーの Type パラメーターに指定する必要があります。(Windows 内部 6)

于 2013-01-08T14:12:54.217 に答える
0

お気づきかもしれませんが、セッション 0 にはトレイがありません! そこで Shell_NotifyIcon が失敗するのは当然のことです。

トレイは、Explorer.exe プロセスによって提供されます。セッション 0 で Explorer のコピーを開始すると、呼び出しは魔法のように成功するはずですが、セッション 0 のユーザー インターフェイスは推奨されないため、注意して進めてください。

于 2013-01-08T16:20:43.023 に答える