Win32Exception параметр неверен - PullRequest
4 голосов
/ 08 февраля 2011

exe-файл с использованием Process.Start(), но он выдает «Win32Exception, параметр неверен».

Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");

Я могу запустить этот файл через командную строку успешно.

Ответы [ 4 ]

5 голосов
/ 08 февраля 2011
 Process.Start("C:\Program Files\APS2PP\keyl2000.exe")

Кто-то отредактировал ваш вопрос, исправив вашу ошибку случайно. Используйте двойную обратную косую черту или поставьте @ перед строкой.

 Process.Start(@"C:\Program Files\APS2PP\keyl2000.exe");
2 голосов
/ 08 февраля 2011

From: http://msdn.microsoft.com/en-us/library/53ezey2s.aspx

Win32Exception - Произошла ошибка при открытии соответствующего файла.

1) Если вы собираетесь использовать статический методProcess.Start(String) вам на самом деле не нужно объявлять объект Process.

//Use...
Process p = new Process();
p.StartInfo = new ProcessStartInfo(filename);
p.Start();

//Or...

Process.Start(filename);

2) Исключением является то, что он по какой-то причине не может открыть этот файл.Вы уверены, что путь правильный?Вы пытались открыть этот файл вручную?

3) Убедитесь, что пути к вашим файлам где-то более организованы.Например, файл настроек.Это также помогает избавиться от необходимости убегать от персонажей.Но если вы настаиваете на том, чтобы оставить эту строку встроенной, по крайней мере уберите необходимость в escape-символах, поставив перед ней символ @ (@"C:\Program Files\SomeFile.exe")

0 голосов
/ 30 августа 2018

У меня была та же ошибка, когда я пытался поместить аргументы в ту же строку, что и имя исполняемого файла, то есть эквивалент:

Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe /t keyfile.dat");

Я не осознавал, что их нужно указывать в отдельных строках.

0 голосов
/ 08 февраля 2011

Какие-нибудь подробности об Исключении?

Согласно: http://msdn.microsoft.com/en-us/library/system.componentmodel.win32exception.aspx это исключение имеет внутренний код исключения, поэтому вы можете зайти в него и посмотреть, что именно произошло.

...