Я просмотрел свой код, и он выглядит почти так же, как ваш:
ProcessStartInfo psi = new ProcessStartInfo(fileName, arguments)
{
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
RedirectStandardOutput = true
};
Process process = Process.Start(psi);
Единственное заметное отличие (помимо форматирования и выбранного нами конструктора PSI) заключается в использовании UseShellExecute и RedirectStandardOutput, поскольку мне нужно было прочитать результат запущенного процесса.
Я обнаружил, что приведенный выше код постоянно запускает скрытый процесс в XP и Vista. Однако я также обнаружил, и вы, возможно, испытываете то же самое, что скрытый процесс может запускать другой процесс, который по умолчанию не скрыт. Другими словами, если вы запускаете скрытый процесс A, а процесс A, в свою очередь, запускает процесс B, вы не можете контролировать, как будет отображаться процесс B. Могут отображаться окна, которыми вы не можете управлять.
Надеюсь, это немного поможет. Удачи.
person
Ben Griswold
schedule
12.07.2009