Я пытаюсь создать процесс на удаленном компьютере, используя класс System.Diagnostics.Process. Я умею создавать процесс. Но проблема в том, что создание службы занимает много времени и отображается окно консоли. Еще одна неприятная вещь - окно консоли отображается поверх моей формы Windows, и я не могу выполнять другие операции с этой формой. Я установил все свойства, например CreateNoWindow = true
,
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
но все же он показывает окно консоли. даже я перенаправил вывод и ошибки в отдельный поток, но не повезло.
Есть ли другой способ скрыть окно консоли? Пожалуйста, помогите мне.
Вот часть моего кода, которую я использовал для выполнения команды sc.
Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = "sc";
proc.StartInfo.Arguments = string.Format(@"\\SYS25 create MySvc binPath= C:\mysvc.exe");
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.WaitForExit();
c#
process
console-application
Прасад
источник
источник
proc.StartInfo.RedirectedStandardOutput = true
? Я получил это для работы с приложением Windows.UseShellExecute
иCreateNoWindow
дважды?Ответы:
У меня была аналогичная проблема при попытке запустить процесс, не показывая окно консоли. Я тестировал несколько различных комбинаций значений свойств, пока не нашел ту, которая демонстрирует желаемое поведение.
Вот страница с подробным описанием того, почему для
UseShellExecute
свойства должно быть установлено значение false.http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.createnowindow.aspx
В разделе "Примечания" на странице:
источник
startInfo.UseShellExecute = false;
Мне не повезло с этим ответом, поскольку процесс (Wix light.exe), по сути, уходит на обед и не приходит домой к ужину. Однако у меня хорошо сработало следующее:
источник
CreateNoWindow = true
у меня не сработало, это сработало :)Это должно сработать, попробуйте;
Добавьте ссылку на систему.
Затем используйте этот код для запуска вашей команды в скрытом окне CMD.
источник
Это не показывает окно:
источник