Главная » Язык программирования C#

Как запустить программу с передачей ей параметров в C#?

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

  • Как запустить программу без окна, скрыто
  • Как запустить программу в свернутом виде, развернутом
  • Как запустить другую программу с правами администратора
  • Как запустить программу от имени любого другого пользователя и при этом загрузить его профиль.

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

using System.Diagnostics;

Далее вам понадобиться следующий код вида:

Process p = new Process();
ProcessStartInfo s = new ProcessStartInfo();
s.FileName = "cmd.exe";  //тут нужно указывать либо полный путь к запускаемой программе, либо вызывать программы быстрого запуска Windows, которые в основном покоятся в system32
s.CreateNoWindow = false;  //создавать ли новое окно для данного процесса?
s.WindowStyle = ProcessWindowStyle.Hidden;  //тут указан параметр запуска Hidden, благодаря чему вызываемая программа будет запущена скрытно
//так же стоит отметить, что не все программы могут послушать такой аргумент запуска и открыться как соизволят сами
//вместо hidden могут стоять и другие значения:
//Normal - нормальное окно, самое обычное
//Maximized - развернутое окно
//Minimized - окно свернуто
s.Arguments = @"ipconfig /flusndns"; //собственно из-за чего весь сыр-бор - параметры(или аргументы) запуска приложения, которые передаются ему сразу после запуска на выполнение
s.Verb="runas";//запуск программы с правами администратора, при отсутствие которых выйдет вездесущий UAC с соответствующим запросом
s.Username="";//указание имени пользователя, от имени которого необходимо запустить программу
s.Passwords=System.Security.String;//пароли не передаем в открытом виде, посему придется создать соответствующий объект
s.LoadUserProfile=false;//загружать ли профиль пользователя(в основном это вовсе необязательно
p.StartInfo = s;
p.Start();
p.WaitForExit();

Любой из вышеприведенных параметров объекта S что из класса ProcessStartInfo может быть спокойно опущен, кроме самого важного из них — собственно название запускаемой программы(хотя компилятор может даже и не обругает вас, не проверял), без использования которого бессмыслен весь код.  А все остальные параметры носят необязательный параметр и вам лучше проверить на профпригодность каждую из них, прежде чем использовать.

Вот и все думаю, добавляйте, если есть чем.

Добавить комментарий

Ваш комментарий появится после модерации.