В настоящее время я пишу облегченную программу, которая объединяет множество командных строк и других внешних процессов в одно приложение.
В настоящее время я столкнулся с проблемой получения системной информации с помощью системной информации .
Я успешно закодировал кнопку, чтобы вызвать системный информационный процесс и перенаправить вывод в текстовое поле.
То, что я сейчас пытаюсь сделать, это иметь индикатор выполнения в нижней части моего окна WPF, поскольку для загрузки системной информации требуется время.
Поскольку я не знаю способа получения точной продолжительности от внешнего процесса, я пытаюсь использовать стиль Marquee.
Я следовал здесь примерам на stackoverflow ( Windows Forms ProgressBar: Самый простой способ запустить / остановить выделение? ), а также на других сайтах, но не смог определить, куда поместить код, чтобы индикатор выполнения прокручивался во время работы systeminfo и останавливался после его завершения.
Мой текущий код (без progressbar1.Style = ProgressBarStyle.Marquee;
) указан ниже.
Будем весьма благодарны за любые предложения относительно того, где разместить код или какой синтаксис использовать. Заранее спасибо!
private void btnSystemInfo_Click(object sender, RoutedEventArgs e)
{
// Get system info
Process info = new Process();
info.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
info.StartInfo.FileName = "C:\\Windows\\system32\\systeminfo.exe";
info.StartInfo.Arguments = "-S " + context;
info.StartInfo.UseShellExecute = false;
info.StartInfo.CreateNoWindow = true;
info.StartInfo.RedirectStandardOutput = true;
info.Start();
string infoOutput = info.StandardOutput.ReadToEnd();
info.WaitForExit();
// Write to the txtInfo text box
txtInfo.Text = "System Info: " + infoOutput;
txtInfo.Foreground = Brushes.Black;
txtInfo.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
// Switch to the info tab
tabControl.SelectedIndex = 3;
}