У меня есть exe, который я бы хотел использовать, выполнив его с параметрами командной строки.Запуск exe с параметрами командной строки
var query = Path.Combine(path, calculator.ExeName + ".exe");
var p = new Process();
p.StartInfo.FileName = query;
//the command line parameter that causes the exe to start in an invisible mode
p.StartInfo.Arguments = "episrc"
p.Start();
Этот код работает, и он начинает ех, но есть одна проблемы: ех должен писать на файл в каталоге, но этого не происходит. Процесс успешно завершается (Exitcode0). Что может быть причиной этой проблемы? У меня есть код Delphi, который успешно выполняет exe, а exe записывает в файл, но использует ExecProcess из win32 API, поэтому exe действительно и работает.
Также, если я попытаюсь выполнить его из командной строки, так: kowwinnt.exe episrc
он успешно записывает файл.
ли исполняемый файл, возможно, записи в каталог вызывающего исполняемого файла? – Codor
Возможно, это вопрос разрешения файлов/каталогов. Попробуйте запустить процесс как администратор: p.StartInfo.Verb = «runas» – Arie
Имеет ли процесс, порождающий этот процесс, достаточные права на запись в указанный каталог? Ваш родительский процесс может порождать дочерний процесс с теми же правами. Если ваш родитель не имеет прав на запись в каталог, он не сможет завершить свое письменное задание (и, вероятно, вы будете обрабатывать любые исключения, но это просто предположение, поскольку в этой части нет фактического кода в этой части вопрос) – aevitas