2014-12-09 3 views
-3

Я хотел бы сделать заявку, используя форму C#. Форма имеет несколько ярлыков для отображения информации и кнопку для клика и отображение этой информации на этих ярлыках. На всех ярлыках будет отображаться информация, которая может быть найдена с помощью cmd. cmd не будет отображаться при выполнении программы.Запустить команду cmd из моей заявки

Для примера:

Если мне нужна материнская плата информации. Это можно сделать с помощью команд cmd «wmic baseboard get product, manufacturer» (без кавычек). Я хотел бы показать ту же информацию на моей этикетке формы C#, нажав кнопку. Это нужно сделать, скрывая cmd-окна.

+0

Вы должны ознакомиться с классами 'Process' и' ProcessStartInfo'. –

+0

http://tinyurl.com/olphm2n – tnw

+0

Вы также можете ознакомиться с использованием API WMI. [Обзор WMI.Net] (http://msdn.microsoft.com/en-us/library/ms257340%28VS.80%29.aspx) – AWinkle

ответ

0

Вы можете использовать ProcessStartInfo и классы Process, чтобы запустить это приложение и перенаправить стандартный вывод в свой собственный метод.

Настройка RedirectStandardOutput приведет к тому, что процесс выведет событие OutputDataReceived, с которым вы легко справитесь.

P.S. Обратите внимание на использование аргументов для предоставления аргументов.

var psi = new ProcessStartInfo(@"wmic"); 
psi.Arguments = @"baseboard get product,manufacturer"; 
psi.WindowStyle = ProcessWindowStyle.Hidden; 
psi.UseShellExecute = false; 
psi.RedirectStandardOutput = true; 

string val = String.Empty; 

var p = Process.Start(psi); 
p.BeginOutputReadLine(); 
p.OutputDataReceived += delegate(object sender, DataReceivedEventArgs eventArgs) 
{ 
    val += eventArgs.Data + "\r\n"; 
}; 
p.WaitForExit(); 

MessageBox.Show(val); // Start parsing it here 
0

Ссылка ниже код против http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo%28v=vs.110%29.aspx и http://msdn.microsoft.com/en-us/library/system.diagnostics.process(v=vs.110).aspx

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(yourCmd, yourCmdArguments); 
psi.RedirectStandardOutput = false; 
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
psi.UseShellExecute = true; 
System.Diagnostics.Process externalProcess; 
externalProcess = System.Diagnostics.Process.Start(psi); 
externalProcess.WaitForExit(); 
+0

Пожалуйста, не кормите [помочь вампирам] (http: // slash7 .com/2006/12/22/вампиры /). – tnw

Смежные вопросы