Если я запускаю следующую команду в командной строке, он работает:Аргументом для ProcessStartInfo потребностей цитаты, всегда ускользает
"C:\Program Files (x86)\AppFolder\do.exe"
Если я пытаюсь запустить то же самое, как процесс:
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = @"/c ""C:\Program Files (x86)\AppFolder\do.exe""";
using (Process process = Process.Start(startInfo))
{
...
}
Он не работает. Если я посмотрю на startInfo.Arguments, он выглядит следующим образом:
/c \"C:\\Program Files (x86)\\AppFolder\\do.exe\"
Что мне не хватает? Не можете ли вы передать аргументы с кавычками или пробелами? Я вижу много примеров, когда люди передают элементы с пробелами/кавычками в порядке, но следование им просто не работает. Это самый узкий пример, о котором я могу думать.
EDIT: Если я просто создать ярлык, так что я не использовать пробелы и кавычки, это работает:
startInfo.Arguments = @"/c D:\_test\Do.lnk";
_It, похоже, не запускается. Как это не работает? Попробуйте удалить скрытый стиль окна и измените параметр '/ c' на опцию'/k'. Бьюсь об заклад, вы увидите сообщение об ошибке в окне консоли, которое теперь задерживается. –