伊莉討論區

標題: 指定程式開啟指定檔案疑問 [打印本頁]

作者: lcskc    時間: 2021-4-9 05:40 AM     標題: 指定程式開啟指定檔案疑問

以下程式我用Acrobat來開啟pdf可以正常執行開啟
  1. System.Diagnostics.Process.Start("Acrobat.exe", "D:\\MDA RESOURCE\\catalog\\misumi.pdf");
複製代碼
但改成別的軟體開pdf卻出現錯誤,出現錯誤
  1. System.Diagnostics.Process.Start("PDFXEdit.exe", "D:\\MDA RESOURCE\\catalog\\misumi.pdf");
複製代碼
[attach]134736621[/attach]
請教誰知道這是什麼問題!

作者: johnwanz    時間: 2021-4-9 08:29 AM

按照提示訊息, 我個人猜測是空白惹得禍.

你在cmd模式, 可以輸入一樣的參數?
(我個人猜測, 按照字串格式, 經過一次轉換到cmd.exe, 應該是不存在 雙引號 了)
作者: tryit244178    時間: 2021-4-9 03:45 PM

本帖最後由 tryit244178 於 2021-4-9 03:51 PM 編輯

用WinAPI把長檔名轉成短檔名就行了。
  1.         [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
  2.         public static extern int GetShortPathName(
  3.             [MarshalAs(UnmanagedType.LPTStr)] string path,
  4.             [MarshalAs(UnmanagedType.LPTStr)] StringBuilder shortPath,
  5.             int shortPathLength
  6.         );

  7.         private void button1_Click(object sender, EventArgs e)
  8.         {
  9.             StringBuilder sbPath = new StringBuilder(255);
  10.             int result = GetShortPathName("D:\\MDA RESOURCE\\catalog\\test.pdf", sbPath, sbPath.Capacity);
  11.             System.Diagnostics.Process.Start("PDFXEdit.exe", sbPath.ToString());
  12.         }
複製代碼

作者: lcskc    時間: 2021-4-9 09:27 PM

johnwanz 發表於 2021-4-9 08:29 AM
按照提示訊息, 我個人猜測是空白惹得禍.

你在cmd模式, 可以輸入一樣的參數?

在cmd模式同樣用Acrobat.exe正常,用PDFXEdit.exe就錯誤

補充內容 (2021-4-9 09:30 PM):
請教大大知道問題出在哪嗎?兩個程式碼明明只差使用的軟體名稱不一樣!
作者: lcskc    時間: 2021-4-9 09:28 PM

tryit244178 發表於 2021-4-9 03:45 PM
用WinAPI把長檔名轉成短檔名就行了。

這個目前對我來說太難了!
作者: genxiau    時間: 2021-4-10 01:36 AM

本帖最後由 genxiau 於 2021-4-10 01:38 AM 編輯

根據 PDFXEdit 說明文件 pdfxe9/command-line-options_ed.html

<filename> means full or relative path to file. When the path contains white spaces it should be enclosed in quotation marks. For example: c:\MyDocuments\MyTestDocument.pdf should be "c:\My Documents\My Test Document.pdf".

System.Diagnostics.Process.Start(
"PDFXEdit.exe",
"\"D:\\MDA RESOURCE\\catalog\\misumi.pdf\"");
可以成功開啟

而 Acrobat 沒有類似的要求 pdf_open_parameters.pdf
作者: lcskc    時間: 2021-4-10 06:00 AM

本帖最後由 lcskc 於 2021-4-10 06:16 AM 編輯
genxiau 發表於 2021-4-10 01:36 AM
根據 PDFXEdit 說明文件 pdfxe9/command-line-options_ed.html

按照這方法的確解決了!感謝

補充內容 (2021-4-10 06:15 AM):
目前自己菜逼八的程度,那些說明文件有點看不太懂,從上面方式反推,因為空格的關係,直接把目錄名稱改為沒有空格來解決,一步步慢慢學!




歡迎光臨 伊莉討論區 (http://a402.file-static.com/) Powered by Discuz!