簡體   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