【发布时间】:2018-12-21 02:50:57
【问题描述】:
我整个星期都在为此苦苦挣扎,所以我希望这里的专家可以帮助我。我有一个绝对必须从带有参数的命令行运行的可执行文件。我想要做的不是启动命令提示符窗口,而是将数据发送到表单上的富文本框。
如果我设置了一个批处理文件并使用正确的代码运行该批处理文件(以Process 运行它),这没有问题。但是,我希望用户能够将自己的参数输入到TextBox,而不是创建批处理文件并引用它。
我只能通过使用 Call Shell 来让这个应用程序正确运行。但是,我读到如果您使用的是 Call Shell,则无法将数据输出到RichTextBox,并且需要将其设置为新的Process。我似乎无法以Process 的身份运行它。
所以问题是,是否有可能以某种方式将 Call Shell 数据输出到RichTextBox 控件,或者有没有办法让这个东西作为一个进程运行?下面的 Visual Basic 代码将使其运行,但不会输出到 RichTextBox。我删除了我尝试过的所有代码,因为每次尝试都失败了。
此按钮将启动Process,或者如果Process 正在运行,它将杀死它。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim exeargs As String = txtExeArgs.Text
Dim p1() As Process
Dim strCommand As String = "executable.exe " & exeargs & ""
p1 = Process.GetProcessesByName("executable")
Dim exepath As String = IO.Path.GetDirectoryName(Me.txtExeLocation.Text)
If p1.Count <= 0 Then
RichTextBox1.Clear()
Call Shell("cmd.exe /c cd /d " & exepath & " & " & strCommand, 0)
Else
Dim killprocess = System.Diagnostics.Process.GetProcesses().Where((Function(p) p.ProcessName = "executable"))
For Each p As Process In killprocess
p.Kill()
Next
RichTextBox1.Clear()
End If
End Sub
【问题讨论】:
标签: vb.net shell command-line richtextbox