7

所以我试着用谷歌搜索这个,但这并没有得到很好的结果。我试图做的是以管理员身份运行另一个程序,而不会每次都弹出烦人的 UAC。

这个想法是这样的,该程序需要管理员权限才能运行,用户将授予该权限。然后这个程序将运行一堆也需要管理员权限的其他程序。与用户不时单击并允许一堆程序不同,具有管理员权限的程序可以以管理员身份运行其他程序,因为它自己拥有它。

这将使用户免于遵循许多指令。此外,让程序要求用户允许许多事情看起来非常不专业。它只是一个可以完成所有操作的一键式程序。

我之所以说谷歌没有得到好的结果是因为页面上充斥着用户如何以管理员身份运行他们的程序。我希望能够以管理员身份运行另一个程序。

我正在考虑将设置文件放到一个文件夹中,然后从 CMD 以管理员身份运行文件,但这需要我使用runas,并且在我自己测试之后,它一直说密码/用户名错误但我确定它是.

还有其他提示吗?

4

1 回答 1

18

You can run another application from your application by using:

Process.Start("Notepad.exe")

If your original program is running Elevated (As Admin), then Notepad will run As Admin (there will be no UAC prompt)

If your original program is not running Elevated and you want to start an application elevated (As Admin) you will have to do something like this (this will prompt for elevation):

    Dim procStartInfo As New ProcessStartInfo
    Dim procExecuting As New Process

    With procStartInfo
        .UseShellExecute = True
        .FileName = "Notepad.exe"
        .WindowStyle = ProcessWindowStyle.Normal
        .Verb = "runas" 'add this to prompt for elevation
    End With

    procExecuting = Process.Start(procStartInfo)

Note that there is no way to circumvent the UAC prompt. If UAC is enabled then the user will have to agree to the elevation at some point.

于 2013-05-29T08:34:38.637 回答