Пишу gui для анализатора шахматных партий. Программа управляется через командную строку вводом команд.
Вот код
Dim myProcess As Process = New Process()
myProcess.StartInfo.FileName = "d:/houdini.exe" 'сама программа
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.CreateNoWindow = True
myProcess.StartInfo.RedirectStandardInput = True
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.StartInfo.RedirectStandardError = True
myProcess.Start()
myProcess.StandardInput.WriteLine("uci") 'команда программе; программа в ответ возвращает несколько строчек информации
MsgBox(myProcess.StandardOutput.ReadToEnd()) 'зависает вот тут
При запущенной программе я могу только отсылать ей команды, а прочитать вывод не могу (моя программа зависает, отладчик VS молчит).
Путем проб и ошибок выяснилось, что если отправить анализатору команду закрытия, то прочитать вывод удается, но меня такой вариант не устраивает.
Как быть?
Ответить
|