c# – 从ClickOnce应用程序中以普通用户身份启动进程

我们有一个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并检查属性,则不会选中以管理员身份运行此程序的框!

检查文件夹中的exe文件时,它会显示一个UAC图标(如下所示):

《c# – 从ClickOnce应用程序中以普通用户身份启动进程》

现在我想知道在编程方面是否可以阻止该行为并以非提升状态启动进程,可能使用StartInfo属性?

最佳答案 试着查看这些链接

Run process under current user

这个细节来自上面链接中的答案

https://social.msdn.microsoft.com/Forums/vstudio/en-US/0c0ca087-5e7b-4046-93cb-c7b3e48d0dfb/how-run-client-application-as-a-windows-service-in-c?forum=csharpgeneral

点赞