Я пытаюсь прочитать вывод CGMiner в программе C#, которую я пишу. Я успешно читаю/записываю стандартный поток ввода/вывода. Но по какой-то причине CGMiner не пишет стандартный вывод cmd-окна, и я не могу его прочитать на C#. Есть идеи?Как читать вывод CGMiner?
Это начать мой процесс:
public void start() {
proc = new Process();
proc.StartInfo.FileName = "CMD.exe";
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.OutputDataReceived += (s, e) => updateConsoleOutput(e);
proc.Start();
proc.BeginOutputReadLine();
}
Это функция я использую, чтобы написать в консоли:
public void RunCommand(string cmd = "") {
if (cmd.Length > 0) {
ConsoleInput = cmd;
}
StreamWriter myStreamWriter = proc.StandardInput;
myStreamWriter.WriteLine(ConsoleInput);
myStreamWriter.Flush();
ConsoleInput = String.Empty;
}
Эти функции я использую для чтения с консоли:
public delegate void consoleOutputCallback(string message);
private void updateConsoleOutput(DataReceivedEventArgs outLine) {
if (!String.IsNullOrEmpty(outLine.Data)) {
this.Dispatcher.Invoke(
new consoleOutputCallback(updateConsoleText),
new object[] { outLine.Data }
);
}
}
public void updateConsoleText(string message) {
this.OutputBlock.Text += message + "\n";
}
СОВЕТ: Не знаю, помогает ли это, но CGMiner перезапишет все окно консоли и курсор всегда остается в левом верхнем углу и не двигается. Вся команда перед запуском CGMiner перезаписывается.
Забыл добавить, что это консольная команда я использую:
cd C:\cgminer\
del *.bin
cgminer.exe -o stratum+tcp://global.wemineltc.com:3335 -O yongke.1:x -g 2
Пожалуйста, не включайте информацию о языке, используемом в заголовке вопроса, если это не имеет смысла без него. Теги служат для этой цели. –