Я создаю приложение C#, которое должно использовать lpr.exe и передавать ему аргументы. В настоящее время я пытаюсь сделать это следующим образом:
DirectoryInfo filePathDirectory = new DirectoryInfo(filePath);
Process a = new Process();
a.StartInfo.FileName = @"C:\Windows\System32\lpr.exe";
a.StartInfo.Arguments = "-SServerName.Domain.net -Plp " + "\"" + filePathDirectory + "\"";
a.StartInfo.UseShellExecute = false;
a.Start();
a.WaitForExit();
Но всякий раз, когда я добираюсь до a.Start();
, я получаю необработанное исключение Win32, в котором говорится: «Система не может найти указанный файл». Это действительно сбивает меня с толку, потому что сначала я подумал, что это мои аргументы, но оказалось, что я могу передать точно такие же аргументы из приложения VB и заставить его работать.
Обновление 1:
Код VB, который работает:
Dim RPname As String
RPname = FileName.ToString
Dim a As New Process
a.StartInfo.FileName = "C:\Windows\system32\lpr.exe"
a.StartInfo.Arguments = "-SServerName.Domain.net -Plp " & Chr(34) & RPname & Chr(34)
a.StartInfo.UseShellExecute = False
a.Start()
a.WaitForExit()
Более того, моя проблема, похоже, не связана с оператором arguments, поскольку я могу прокомментировать его, но все равно получаю сообщение об ошибке.
Обновление 2:
Ошибка, которую я получаю в начале процесса: Система не может найти указанный файл. Я не получаю сообщение об ошибке, если изменяю имя файла на "C:\Windows\System32\cmd.exe". ", работает нормально...