Я получил это далеко:
ProcessStartInfo procInfo = new ProcessStartInfo(@"C:\a\a.exe"); procInfo.CreateNoWindow = true; procInfo.Arguments = "01"; procInfo.Arguments = user_number; procInfo.Arguments = email; Process.Start(procInfo);
Но он передает только один аргумент (последний перезаписывает), как мне передать более одного аргумента, аргументы на консоли - это массив, это должно означать, что я могу передать более одного аргумента?
Вы хотите передать одну строку разделенных пробелами аргументов:
procInfo.Arguments = "01 " + user_number + " " + email;
То же самое, используя формат:
procInfo.Arguments = string.Format("{0} {1} {2}", "01", user_number, email);
Все правы, просто нуждаясь в объединении. Просто стилистическая вещь, но вы можете использовать String.Join, чтобы сделать передачу аргументов более элегантной:
string[] argv = {"01", user_email, email}; ProcessStartInfo procInfo = new ProcessStartInfo(@"C:\a\a.exe"); procInfo.CreateNoWindow = true; procInfo.Arguments = String.Join(" ", argv); Process.Start(procInfo);
попробуйте это ..
Объединить ваши аргументы в одну строку, разделенную пробелом?Или вы можете использовать какой-то идентификатор перед каждым аргументом и заставить приложение .exe анализировать строку.