我正在尝试在单击事件中运行以下代码。但是因为它在cmd shell中执行命令,我不知道为什么它不会运行。我可以做的是通过注释掉参数打开cmd.exe作为管理员。除了将这些参数放在.bat文件中,然后从process.start运行。
但是,为什么我不能用参数运行shell?我更喜欢这种方法而不是将参数放在.bat文件中。
Dim process As New System.Diagnostics.Process()
Dim startInfo As New System.Diagnostics.ProcessStartInfo()
' startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
startInfo.FileName = "cmd.exe"
If System.Environment.OSVersion.Version.Major >= 6 Then ' Windows Vista or higher
startInfo.Verb = "runas"
Else
' No need to prompt to run as admin
End If
startInfo.Arguments = "/C bcdedit /set {current} safeboot network"
process.StartInfo = startInfo
process.Start()
答案 0 :(得分:0)
想出来。我不得不将bcdedit.exe复制到我的项目中。我以为调用cmd.exe会转到bcdedit.exe所在的位置。