【发布时间】:2016-06-24 13:31:49
【问题描述】:
我们有一个 ClickOnce 应用程序,它使用
启动外部进程p = new Process();
p.StartInfo.WorkingDirectory = Path.GetDirectoryName(exe);
p.StartInfo.FileName = Path.GetFileName(exe);
p.StartInfo.Arguments = arguments;
p.Start();
通常,人们会问是否可以作为管理程序启动该过程。但就我而言,情况恰恰相反:
我想确保以登录用户身份启动此应用程序。默认情况下,这会发生 - 例如当我测试它时。
但有些用户(Windows 8.1)报告说该 exe 是以管理员身份启动的。由于某些奇怪的原因,Windows 自动希望以管理员身份启动它,即使它根本没有必要。如果他们右键单击 exe 并选中 Properties,则框 Run this program as an administrator 未选中!
查看文件夹中的exe文件时,会显示一个UAC图标(下例):
现在我想知道是否可以通过编程方式阻止该行为并在非提升状态下启动进程,也许使用 StartInfo 属性?
【问题讨论】:
-
是“wusa”您点击一次的应用程序还是您生成的应用程序/进程。子进程应该以与启动它的应用程序相同的级别开始。
-
不,它只是一张随机图片,显示可执行图标的外观,当 Windows(出于某种奇怪的原因)让用户以管理员身份启动程序时。
-
你控制你从clickonce开始的那个外部exe吗?
-
嗨@Evk,这不是我的exe,它是一个外部程序。该程序的路径可以在我的 clickonce 可执行文件中配置,当用户单击我的应用程序中的按钮时,我的应用程序会启动它(通过使用给定的路径)。
标签: c# process clickonce administrator