我按照所述使用了应用清单文件 这里 要有一部分我的应用程序运行,具有提高特权(需要)。
因此,在需要时,主程序只需使用流程调用一个小型组件。开始处理需要管理权的任务。

但是,如何在Windows XP上做同样的事情?
XP似乎只是忽略了这份清单,并在当前用户上下文中运行小汇编。

有帮助吗?

解决方案

以下来自 这里 做我需要的事情:

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

using (Process process = new Process())
{
   process.StartInfo = processStartInfo;
   process.Start();
   process.WaitForExit();
}

因此,实际上,您需要在processstartinfo.verb上设置“ runas”。随着附件的清单,该代码现在在Windows XP,Vista和7上正常工作。

更新:
也可以看看 这个问题的答案. 。这基本上是相同的代码,也只需使用参数即可。

其他提示

您可以使用 runas 命令。

Windows XP没有UAC。

你需要打电话 Process.Start 具有具有管理特权的用户的登录凭据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top