繁体   English   中英

Process.Start不执行命令

[英]Process.Start not executing command

我正在使用ImageMagick C#工具通过从C#调用可执行文件将PDF转换为JPG。 我相信我已经正确设置了命令,但是它没有执行; 它只是通过Process.Start(startInfo)而不执行它。 我确实看到命令提示符弹出,但是没有任何反应。

string PNGPath = Path.ChangeExtension(Loan_list[f], ".png");
string PDFfile = '"' + Loan_list[f] + '"';
string PNGfile = '"' + PNGPath + '"';
string arguments = string.Format("{0} {1}", PDFfile, PNGfile);
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Program Files\ImageMagick-6.9.2-Q16\convert.exe");
startInfo.Arguments = arguments;
Process.Start(startInfo);

我不确定这是否是因为我之前在每个参数上加上了双引号,但是在注释掉并再次运行它之后,它仍然跳过了。 有什么想法吗?

编辑:为了更加清楚,我期望PDF中的JPG文件,但是我看不到这部分代码的输出文件。 我在命令提示符下运行以下命令,将PDF转换为JPG

"C:\Program Files\ImageMagick-6.9.2-Q16\convert.exe" "C:\Users\rwong\Desktop\RoundPoint\1000965275\1000965275_157_Credit File_10.PDF" "C:\Users\rwong\Desktop\RoundPoint\1000965275\1000965275_157_Credit File_10.png"

为了清楚起见,我在代码中显式调用了convert.exe。 该命令在命令提示符下工作正常,但是在将结构覆盖到C#时不会执行任何操作。 我看到了其中的代码,但是它继续运行而没有错误。

Edit2:根据下面的请求,是过程退出代码的代码和输出

string PNGPath = Path.ChangeExtension(Loan_list[f], ".png");
string PDFfile = '"' + Loan_list[f] + '"';
string PNGfile = '"' + PNGPath + '"';
try
{
    Process myprocess = null;
    string[] arguments = { PDFfile, PNGfile };
    myprocess=Process.Start(@"C:\ProgramFiles\ImageMagick6.9.2Q16\convert.exe", String.Join(" ", arguments));
    Console.WriteLine("Process exit code: {0}", myprocess.ExitCode);
}
catch (Exception ex)
{
    Console.WriteLine(ex);
}

流程退出代码:1

假设您是对的并且有问题(不是该过程只是很快执行并退出了),则可以按以下方式检查返回代码:

if (Process.Start(startInfo) == null)
{
    int lastError = Marshal.GetLastWin32Error();
}

然后,您可以在此处查找错误代码:

https://msdn.microsoft.com/zh-CN/library/windows/desktop/ms681381(v=vs.85).aspx

希望那个供应商实际上设置了一个关于失败的错误代码(他们可能会也可能不会)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM