我想启动一个进程,这是一个请求管理员权限的控制台应用程序(level="requireAdministrator"
)。实际上,我要将UseShellExecute
属性设置为True
以显示UAC请求,但我还想重定向其输出。问题是,要重定向流程输出,我们必须将UseShellExecute
属性设置为False
...
这是我目前的代码:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim admin As Boolean
Using p As New Process With {
.StartInfo = New ProcessStartInfo With {
.FileName = "D:\Drarig29\Documents\Visual Studio 2013\Projects\AdminRightsConsole\Console\bin\Release\Console.exe",
.RedirectStandardOutput = True,
.UseShellExecute = False,
.WindowStyle = ProcessWindowStyle.Hidden,
.CreateNoWindow = True}}
p.Start()
Using s As StreamReader = p.StandardOutput
admin = s.ReadToEnd.Trim()
End Using
End Using
If Button1.Text = "Enable" Then
If admin Then
Button1.Text = "Disable"
End If
Else
If admin Then
Button1.Text = "Enable"
End If
End If
End Sub
如何显示UAC请求并同时重定向流程的输出?
编辑:控制台应用程序在Boolean
中写入Standard Output
。如果它具有管理员权限,则返回True
,如果没有,则返回False
。