Как создать командное приложение, как запустить команду для Vista - PullRequest
0 голосов
/ 18 марта 2009

как создать приложение, например команду запуска окна, используя C #. Когда я вставляю любую команду (например: ipconfig), этот возвращаемый результат (например: 192.168.1.1) в текстовом поле.

  1. как получить список команд Windows?
  2. как получить результат команды?
  3. как получить список установленных приложений на машине?

Ответы [ 2 ]

2 голосов
/ 18 марта 2009

(1) Список команд, скорее всего, будет получен из любых исполняемых файлов, найденных в вашем% PATH%. Вы можете составить список, найдя все исполняемые файлы .exe / .bat / другие в каждой папке, указанной в% PATH%. Возможно, вам даже не нужно знать, какие приложения доступны, метод Process.Start найдет их для вас. (см. ниже)

(2) Вы можете запустить инструмент командной строки программно, используя:

System.Diagnostics.Process.Start("notepad.exe"); // located using %PATH%

Чтобы захватить вывод, вы должны перенаправить его так:

System.Diagnostics.ProcessStartInfo psi =
    new System.Diagnostics.ProcessStartInfo(@"ipconfig");
psi.RedirectStandardOutput = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;

System.Diagnostics.Process myProcess;
myProcess = System.Diagnostics.Process.Start(psi);
System.IO.StreamReader myOutput = myProcess.StandardOutput; // Capture output
myProcess.WaitForExit(2000);
if (myProcess.HasExited)
{
    string output = myOutput.ReadToEnd();
    Console.WriteLine(output);
}

(3) Вероятно, тот же ответ, что и 1

1 голос
/ 18 марта 2009

Создайте приложение Windows Forms с помощью мастера. Нарисуйте текстовое поле и кнопку. Добавьте обработчик Click к кнопке, которая берет содержимое текстового поля и запускает процесс. Используйте класс Process . Этот класс также имеет свойство StandardOutput, с которого вы можете прочитать вывод, чтобы вы могли поместить его в текстовое поле.

Вы можете обнаружить, что для использования многих команд командной строки вам необходимо набрать CMD /C, поскольку они не являются отдельными программами от интерпретатора команд.

Что касается обнаружения списка команд, это обычно невозможно. Команда - это просто программа (или функция интерпретатора команд CMD). Вы можете искать на жестком диске файлы .exe, но тогда многие из них не подойдут в качестве «команд».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...