Я использую VB.net, чтобы иметь графический интерфейс поверх программы командной строки.
Dim sqliProcess As New Process()
sqliProcess.StartInfo.UseShellExecute = False
sqliProcess.StartInfo.RedirectStandardOutput = True
sqliProcess.StartInfo.RedirectStandardError = True
sqliProcess.StartInfo.FileName = "C:\shell_program.exe"
sqliProcess.StartInfo.CreateNoWindow = True
sqliProcess.Start()
Do While Not bw.CancellationPending
Try
If Not sqliProcess.StandardOutput.EndOfStream Then
Debug.Print(sqliProcess.StandardOutput.ReadLine)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error reading output")
End Try
Threading.Thread.Sleep(1)
Loop
, которая работает и распечатывает все выходные данные программы командной строки.Однако в какой-то момент программа командной строки запрашивает взаимодействие с пользователем, например:
Type a number (1/2/3/4):
Но программа командной строки останавливается после этого.Я подозреваю, что это потому, что он не получает допустимую опцию.
Есть ли способ захвата, когда программа командной строки хочет взаимодействия с пользователем, и удерживать чтение потока, чтобы позволить пользователю вводить что-то