如何在Windows XP上以管理员身份运行其他应用程序

Mar*_*arc 6 .net c# uac windows-xp elevation

我使用了此处所述的应用程序清单文件,使我的应用程序的一部分以提升的权限运行(它需要).
因此,在需要时,主程序只使用Process.Start调用一个小程序集,然后处理需要管理员权限的任务.

但是,如何在Windows XP上执行相同的操作?
似乎XP只是忽略了这个清单并在当前用户上下文中运行小程序集.

Mar*_*arc 9

从下面的代码在这里不正是我所需要的:

ProcessStartInfo processStartInfo = new ProcessStartInfo("path", "args");
processStartInfo.Verb = "runas";

using (Process process = new Process())
{
   process.StartInfo = processStartInfo;
   process.Start();
   process.WaitForExit();
}
Run Code Online (Sandbox Code Playgroud)

所以实际上你需要在ProcessStartInfo.Verb上设置"runas".使用附加的清单,此代码现在可以在Windows XP,Vista和7上正常运行.

更新:
另请参阅此问题的答案.这基本上是相同的代码,只是使用参数.