Vb.net VB 2013-路线添加cmd提升

Vb.net VB 2013-路线添加cmd提升,vb.net,Vb.net,经过几天的谷歌搜索和尝试,我想让met自己问一下。 我正在努力做到这一点: “显示当前路线”工作正常,并显示我要求他显示的文本 但是添加的路径不太多,让我向您展示代码:) 现在我知道您应该在这里主要使用不同的代码: startInfo.UseShellExecute=True 而不是: startInfo.UseShellExecute=False 但这给了我重定向的错误(我发现在这个论坛的其他地方是不可能的) 现在我不想让它显示输出,我有另一个按钮。 但我似乎无法让它正常工作,因为我一直都会遇

经过几天的谷歌搜索和尝试,我想让met自己问一下。 我正在努力做到这一点: “显示当前路线”工作正常,并显示我要求他显示的文本

但是添加的路径不太多,让我向您展示代码:)

现在我知道您应该在这里主要使用不同的代码: startInfo.UseShellExecute=True 而不是: startInfo.UseShellExecute=False

但这给了我重定向的错误(我发现在这个论坛的其他地方是不可能的)

现在我不想让它显示输出,我有另一个按钮。 但我似乎无法让它正常工作,因为我一直都会遇到不同的错误,比如无法重新检测或重定向,而不是从网络上的不同代码组合开始


我在这里遗漏了什么???

要编辑您电脑的路由表,您的应用程序需要以管理员身份运行。您可以添加一个,它会根据需要提示。

您是否以管理员身份运行此程序(即使用UAC提升)?您可以使用鼠标右键以管理员身份运行此程序,但我宁愿在代码中使用类似“startInfo.Verb=“runas”的命令来执行此操作,但它确实会在输入命令时出错,因为我没有此应用程序,但是你在这么做吗?不,我以普通用户的身份运行VS studio,然后按start,这反过来又以普通用户的身份构建程序。然后需要提升到admin,这会导致错误。但我同意,右键单击“以管理员身份运行”会更容易。所以这是一个不可能的重复。他们都在清单中删除asinvoker没有改变结果,因为我仍然需要管理员权限。是的,您必须拥有管理员权限才能更改路由表。在执行时,向清单添加相关设置应该是正确的,并提示管理员权限。
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim cmdThread As New Threading.Thread(AddressOf CmdAutomate2)
    cmdThread.Start()
End Sub
Private Sub CmdAutomate2()
    Dim myprocess As New Process
    Dim startInfo As New System.Diagnostics.ProcessStartInfo
    startInfo.FileName = "cmd" 
    startInfo.RedirectStandardInput = True
    startInfo.RedirectStandardOutput = True
    startInfo.UseShellExecute = False 
    startInfo.CreateNoWindow = True 
    myprocess.StartInfo = startInfo
    myprocess.Start()
    Dim sR As System.IO.StreamReader = myprocess.StandardOutput
    Dim sW As System.IO.StreamWriter = myprocess.StandardInput
    sW.WriteLine("route add" & textbox1.text & " " & textbox2.text) 
    sW.WriteLine("exit") 'exits command prompt window
    results = sR.ReadToEnd 'returns results of the command window
    sW.Close()
    sR.Close()
    Invoke(finished)
End Sub