我对c#非常陌生,对于一个项目,我已经下载了一些由tixiv撰写的代码 从 https://www.das-labor.org/trac/browser/microcontroller/src-atmel/laserExposer/PC_Frontend?order=name
我试图在表单中打开pdf文件。
我得到的错误是:
类型' System.ComponentModel.Win32Exception'的例外情况发生了 在System.dll中但未在用户代码中处理其他信息: 系统找不到指定的文件如果有处理程序 这个例外,程序可以安全地继续。
问题1.
我对这条线感到困惑:
p.StartInfo.FileName = "E:/Test/test2.pdf";
我可以使用空字符串,还是需要定义上面的特定文件和位置?
问题2.以下陈述中的开关(-f 1 -l 1 -r 600)
是什么意思?
p.StartInfo.Arguments = "-mono -f 1 -l 1 -r 600 " + openPdfDialog.FileName + " E:/Documents/Eagle Projects/Testing/";
问题3.捕获此异常的正确方法是什么?
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
Process p = new Process();
// Redirect the output stream of the child process.
// StartInfo Gets or sets the properties to pass to the Start method of the Process.
p.StartInfo.UseShellExecute = false; // UseShellExecute Setting this property to false enables you to redirect input, output, and error streams.
p.StartInfo.RedirectStandardOutput = true; // true if output should be written to Process.StandardOutput;
p.StartInfo.FileName = "E:/Test/test2.pdf"; // The default is an empty string.
p.StartInfo.Arguments = "-mono -f 1 -l 1 -r 600 " + openPdfDialog.FileName + " E:/Documents/Eagle Projects/Testing/";
p.Start();
// Do not wait for the child process to exit before
// reading to the end of its redirected stream.
// Read the output stream first and then wait.
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
FileInfo f = new FileInfo("c:\\Windows\\Temp\\-000001.pbm");
StreamReader s = f.OpenText();
...
答案 0 :(得分:0)
您可以查看链接C# System.diagnostics.process.startinfo。但关于你的问题:
1)输入是E:\Test\test2.pdf
似乎很奇怪,而应该是要执行的过程,就像HelloWorld.exe
的链接示例一样。我查看了帖子的存储库,而不是pdftoppm
。
2)它实际上是pdftoppm
的输入参数,您可以在pdftoppm linux man page找到信息