0

我有一个应用程序(称为“启动器”),我可以在其中启动其他应用程序

其中一个应用程序需要管理员权限。如果我尝试从启动器启动它,我会得到一个异常,这表明我需要更高的权限。

从 Launcher 启动应用程序的代码如下所示:

try
{
   ProcessStartInfo startInfo = new ProcessStartInfo(PATH, ARGUMENT)
      {
         WorkingDirectory = WORKINGDIRECTORY
      };
   Process.Start(startInfo);
}
catch(Exception ex)
{
   MessageBox.Show(ex.Message);
}

如果我启动启动器一切正常。但我不想每次都以管理员身份启动 Launcher。

如何从非管理员进程以管理员身份启动新进程?

4

2 回答 2

0

您的应用程序需要是管理员,或者您需要提供用户名密码。对于用户名/密码方法,请参阅:

https://groups.google.com/forum/?fromgroups=#!msg/microsoft.public.dotnet.languages.csharp/u5YuEz416R8/1oTRvUUzKj4J

这有更多您正在寻找的方法,但它不是您可能喜欢的一小段代码。

Process.Start 使用 UAC 开启不同的凭据

否则,将其添加到您的应用清单文件中。

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
于 2013-02-28T09:20:59.660 回答
0

创建一个具有管理员权限的帐户,然后使用管理员帐户的相应值填充实例上的UserNamePassword属性。ProcessStartInfo

于 2013-02-28T09:24:40.120 回答