查看完整版本: 指定程式開啟指定檔案疑問
頁: [1]

lcskc 發表於 2021-4-9 05:40 AM

指定程式開啟指定檔案疑問

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

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把長檔名轉成短檔名就行了。        
        public static extern int GetShortPathName(
             string path,
             StringBuilder shortPath,
            int shortPathLength
        );

        private void button1_Click(object sender, EventArgs e)
        {
            StringBuilder sbPath = new StringBuilder(255);
            int result = GetShortPathName("D:\\MDA RESOURCE\\catalog\\test.pdf", sbPath, sbPath.Capacity);
            System.Diagnostics.Process.Start("PDFXEdit.exe", sbPath.ToString());
        }...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

lcskc 發表於 2021-4-9 09:27 PM

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

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


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

補充內容 (2021-4-9 09:30 PM):
請教大大知道問題出在哪嗎?兩個程式碼明明只差使用的軟體名稱不一樣!...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

lcskc 發表於 2021-4-9 09:28 PM

tryit244178 發表於 2021-4-9 03:45 PM static/image/common/back.gif
用WinAPI把長檔名轉成短檔名就行了。

這個目前對我來說太難了!<br><br><br><br><br><div></div>

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...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

lcskc 發表於 2021-4-10 06:00 AM

本帖最後由 lcskc 於 2021-4-10 06:16 AM 編輯

genxiau 發表於 2021-4-10 01:36 AM static/image/common/back.gif
根據 PDFXEdit 說明文件 pdfxe9/command-line-options_ed.html



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

補充內容 (2021-4-10 06:15 AM):
目前自己菜逼八的程度,那些說明文件有點看不太懂,從上面方式反推,因為空格的關係,直接把目錄名稱改為沒有空格來解決,一步步慢慢學!...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁: [1]