lpr.exeを使用して引数を渡すC#アプリを作成しています。私は現在、この方法でそれを行おうとしています:
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:
プロセスの開始時に発生するエラーは次のとおりです。システムは指定されたファイルを見つけることができません。FileNameを「C:\ Windows \ System32 \ cmd.exe」に変更してもエラーは発生しませんが、正常に機能します...