VB.NET Process.Start不传递给CMD的参数

时间:2015-03-04 22:10:53

标签: vb.net cmd arguments argument-passing process.start

这是我在这里的第一篇文章,所以请放心,我也对VB有很好的了解。

我正在创建一个应用程序,只需点击一下按钮即可创建一个WiFi热点,这样我就可以将我的笔记本电脑用作我的设备(如手机)的WiFi扩展器,但是,我正在使用命令提示符执行此操作。到目前为止,这是我的代码:

      Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
    Dim startInfo As New ProcessStartInfo("cmd")
    startInfo.WindowStyle = ProcessWindowStyle.Minimized
    startInfo.Arguments = "netsh show wlan drivers"
    Process.Start(startInfo)
End Sub

问题是,它没有传递参数。 Cmd发射很好但没有收到任何东西。

我尝试过的事情: 1.使用process.start和ProcessStartInfo 2.更改工作目录 3. cmd启动后发送参数(在process.start之后) 4.改变目标框架 5.在x86和x64中运行 6.以管理员身份运行 7.尝试其他命令,例如“color 2f”。失败。

非常感谢任何帮助!

编辑:甚至没有传递WindowStyle参数。

1 个答案:

答案 0 :(得分:2)

您需要添加

startInfo.Arguments = "/C netsh wlan show drivers"

没有该标志(/C) CMD命令立即退出并且不执行任何操作

无论如何你的命令都是错误的。正确的语法是

netsh wlan show drivers

您可以更改代码以此方式捕获命令的输出

Dim startInfo As New ProcessStartInfo("cmd")
startInfo.WindowStyle = ProcessWindowStyle.Minimized
startInfo.Arguments = "/C netsh wlan show drivers"
startInfo.RedirectStandardOutput = true
startInfo.UseShellExecute = false
startInfo.CreateNoWindow = true
Dim p = Process.Start(startInfo)
Dim result = p.StandardOutput.ReadToEnd()
p.Close()