从表单应用程序启动应用程序管理员

时间:2013-12-02 08:57:46

标签: vb.net windows visual-studio-2008

我刚开始使用VB.net并构建简单的应用程序来帮助我更好地工作。 我正在使用Visual Studio Express VB 2008创建表单应用程序。 在这种形式中,将有按钮来启动计算机中安装的应用程序。 理想情况下,某些应用程序需要以普通用户身份启动,而某些应用程 我将为用户提供一个选项,以便在同一表单中输入管理员凭据,并使用它来启动需要管理员访问权限的应用程序。 遗憾的是,由于此错误,我无法构建代码:“String”类型的值无法转换为“System.Security.SecureString” 这是代码写的:

Private Sub cmd_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_button.Click
Dim passwd As New System.Security.SecureString
Dim proc As New ProcessStartInfo
passwd = password_box.Text
passwd.Clear()
With Proc
    .FileName = "cmd.exe"
    .Username = username_box.Text
    .Passwd = passwd
End With
Process.Start(proc)
End Sub

希望能在这里得到一些帮助,尝试使用谷歌搜索并搜索如此多的论坛以及Stackoverflow,但是得到的结果可以用于C#,VB.Net无法找到,或者可能有些事情不明确包在我身上。希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:2)

要以管理员身份运行应用程序,请将.Verb属性设置为"runas",将UseShellExecute属性设置为True,如下所示:

Dim process As New Process()
process.StartInfo.FileName = "cmd.exe "
process.StartInfo.Verb = "runas"
process.StartInfo.UseShellExecute = True
process.Start()

如果当前用户不是管理员组的成员,如果他们是(并且UAC已打开),则会提示输入凭据。

您无法提供要使用的凭据。这是设计的,所以你要做的事情不会像你想要的那样工作。