Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将进程提升为以管理员身份运行不会';行不通_C#_Windows_Windows Vista_Uac - Fatal编程技术网

C# 将进程提升为以管理员身份运行不会';行不通

C# 将进程提升为以管理员身份运行不会';行不通,c#,windows,windows-vista,uac,C#,Windows,Windows Vista,Uac,将进程提升为以管理员身份运行不起作用。如果我从提升的命令提示符运行该应用程序,它运行良好。但我下面的代码没有 Process setupws = new Process(); setupws.StartInfo.FileName = @"setupws.exe"; setupws.StartInfo.Verb = "runas"; setupws.StartInfo.UseShellExecute = true; setupws.Start(); setupws.WaitForExit();

将进程提升为以管理员身份运行不起作用。如果我从提升的命令提示符运行该应用程序,它运行良好。但我下面的代码没有

Process setupws = new Process();
setupws.StartInfo.FileName = @"setupws.exe";
setupws.StartInfo.Verb = "runas";
setupws.StartInfo.UseShellExecute = true;
setupws.Start();
setupws.WaitForExit();
setupws.exe文件运行良好,只是不作为管理员

我做错了什么

谢谢


另外,我还在我的app.manifest文件中使用了highestAvailable和requireAdministrator,您需要在清单中将安装程序标记为requestedExecutionLevel=requireAdministrator,请参阅


另外,requireAdministrator应该在setupws.exe的清单中。

您是否以管理员身份运行应用程序并进行了尝试?你可以这样做:

using System.Security.Permissions;

var mine = new EnvironmentPermission(PermissionState.Unrestricted);
mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);

我很确定您需要的不仅仅是runas。我的清单中确实设置了requestedExecutionLevel=“RequiredAdministrator”。另外,我的setupws.exe文件没有使用清单文件,它也不是我的,因此可能永远不会使用。但这就是我认为“符文”的目的。它真的应该是一个setupsw清单。。。无论如何,还必须在ProcessInfo上设置ErrorDialog和ErrorDialogParentHandle,请参见,因为某些HWND必须拥有提升UI提示对话框。