我們使用Visual Studio 6編寫了一個大型的舊應用程序。我們遇到了Shell_NotifyIcon在Windows 7上因Shell_NotifyIcon失敗而出現問題會話0中的服務。服務試圖放置托盤圖標。從Windows 7的會話0中的服務器調用Shell_NotifyIcon時失敗
有誰知道是什麼原因導致這種故障以及如何解決這個問題?
我們使用Visual Studio 6編寫了一個大型的舊應用程序。我們遇到了Shell_NotifyIcon在Windows 7上因Shell_NotifyIcon失敗而出現問題會話0中的服務。服務試圖放置托盤圖標。從Windows 7的會話0中的服務器調用Shell_NotifyIcon時失敗
有誰知道是什麼原因導致這種故障以及如何解決這個問題?
也許是因爲添加了會話0隔離功能,其結果是服務無法直接與用戶桌面交互。要配置具有與用戶交互權限的服務,SERVICE_INTERACTIVE_PROCESS修飾符必須存在於服務註冊表鍵類型參數中。 (Windows內部6)
交互式進程允許服務顯示UI,但是它們的UI放置在特殊會話中。他們無法與用戶登錄會話進行通信。一旦你做了快速用戶切換,該應用程序即使在Windows XP上也已被破解。 –
正如您可能已經注意到的那樣,Session 0中沒有托盤! Shell_NotifyIcon在那裏失敗並不奇怪。
托盤由Explorer.exe進程提供。如果您的電話應該神奇地成功,但請謹慎行事,因爲會話0中的用戶界面不受歡迎。
谷歌「會話0孤立」,找出爲什麼這不再可能。 –