C# 对于以管理员身份运行的程序,重新启动后SysTray图标不可见

C# 对于以管理员身份运行的程序,重新启动后SysTray图标不可见,c#,windows-vista,system-tray,administrator,runas,C#,Windows Vista,System Tray,Administrator,Runas,我有一个最简单的应用程序形式,其中显示一个SysTray图标,并将应用程序添加到启动项中。应用程序是用C#开发的。我希望托盘图标即使在重启机器后也能显示出来。目前,我在使用“以管理员身份运行”运行exe时遇到了一个奇怪的行为。当我在管理员权限下使用时,图标不会在机器重新启动后出现(尽管exe仍在运行)。我在元数据“requestedExecutionLevel=“asInvoker”uiAccess=“false”中使用以下元数据值: 我不得不使用“invoker”(而不是“administra

我有一个最简单的应用程序形式,其中显示一个SysTray图标,并将应用程序添加到启动项中。应用程序是用C#开发的。我希望托盘图标即使在重启机器后也能显示出来。目前,我在使用“以管理员身份运行”运行exe时遇到了一个奇怪的行为。当我在管理员权限下使用时,图标不会在机器重新启动后出现(尽管exe仍在运行)。我在元数据“requestedExecutionLevel=“asInvoker”uiAccess=“false”中使用以下元数据值:

我不得不使用“invoker”(而不是“administrator”),因为它没有将其添加为启动项。如果我使用双击运行exe(现在它在当前用户域而不是管理员下运行),它工作正常,但是这个exe将由安装程序启动,从而在系统域中启动。有人能帮我解决这个问题吗

请为我提供解决方案,以便在以管理员身份运行时显示Systray图标,或者提供更好的方法,以便我可以在当前用户域而不是管理员下启动此Exe

问候
Sumeet Garg

我现在正在从另一个组件(Shell扩展)调用exe,它总是在用户域中运行。因此,默认情况下会调用exe工作用户域。感谢您的支持。

您当前如何在重新启动时启动exe?我将exe路径作为字符串值添加到以下注册表路径中:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run