2015-07-29 3 views
0

из приложения .NetWinFormsC# мне нужно вызвать другую программу (которая также является применение .NetWinFormsC#, если это делает никакой разницы) со строковыми аргументами, содержащих разрыв строки/символы новой строки.Запуск внешней программы с строковыми аргументами, содержащими разрывы строк

Если я использую Process.Start() метод (в вызывающей программы) и Environment.GetCommandLineArgs()называемой программы), чтобы сделать это, это эквивалентно запуск программы из командной строки. В этом случае вы сможете передавать строковые аргументы, содержащие строки break/new line, без проблем с обеих сторон?

+0

Посмотрите на [Process.Start (ProcessStartInfo)] (https://msdn.microsoft.com/en-us/library/0w4h05yb (v = vs.110) .aspx) и [ProcessStartInfo] (https: //msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo(v=vs.110).aspx). Я считаю, что вы должны уметь устанавливать все, что угодно, для 'ProcessStartInfo.Arguments'. Возможно, это сработает. – sab669

+0

Возможно, префикс @ перед передачей строки также поможет. (Забудьте, что он обозначает). – icbytes

+0

'Process.Start()' вызывает 'CreateProcess()'. Нет интерпретатора командной строки. Это совсем не то же самое, что запустить процесс из командной строки. Интерпретатор командной строки накладывает ограничения на допустимые символы в командной строке. Вы не можете передать символ новой строки через командную строку (но вы можете вызвать вызов CreateProcess() '). – IInspectable

ответ

0

Answered By – IInspectable Aug 17 at 16:07

Process.Start() звонки CreateProcess(). Нет интерпретатора командной строки. Это совсем не то же самое, что запустить процесс из командной строки. Интерпретатор командной строки накладывает ограничения на допустимые символы в командной строке. Вы не можете передать символ новой строки через командную строку (но вы можете позвонить по телефону CreateProcess()).

Смежные вопросы