台灣最大程式設計社群網站
線上人數
1390
 
會員總數:240344
討論主題:186343
歡迎您免費加入會員
討論區列表 >> C# >> winform process開啟外部程式(qdf檔)的問題
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
winform process開啟外部程式(qdf檔)的問題
價值 : 100 QP  點閱數:243 回應數:7

樓主

阿亮
門外漢
0 17
528 20
發送站內信



請問在C#寫winform,用process開外部檔案。
目前試過直接開啟Label Matrix程式沒問題。
可是在加上檔案路徑及print名稱後。
就會產生系統找不到該檔案的錯誤。

路徑設定
txtpath1是用 OpenFileDialog取得要執行之檔案路徑
printstr是直接撈目前本機的印表機名稱
Lab_M.StartInfo.FileName = @"C:\Program Files\lmw32\lmwprint.exe /L=" + this.txtpath1.Text + " /D=1 /X=" + printstr;
Lab_M.Start();

請問這樣的路徑設定有問題嗎

搜尋相關Tags的文章: [ Label Matrix ] , [ process ] , [ win form ] ,
本篇文章發表於2017-05-08 14:09
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
你先下個中斷點看看你這一串產生的路徑長啥樣子吧
不要自己去湊,直接看完整出來的。
不然先下個string temp 把值塞給temp看
本篇文章回覆於2017-05-08 16:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

阿亮
檢舉此回應
完整的路徑是長這樣子的
C:\\Program Files\\lmw32\\lmwprint.exe /L=D:\\tag2\\生產部標籤.qdf /D=1 /X=測試1

單獨執行
Label Matrix的exe或是.qdf的標籤檔。
都能正常run
本篇文章回覆於2017-05-08 16:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

神奇
檢舉此回應
您好,這種指令下法是有問題的

首先不要把參數和執行檔寫在一起,要分開設
Lab_M.StartInfo.FileName = @"C:\Program Files\lmw32\lmwprint.exe";
Lab_M.StartInfo.Arguments = 您的參數

再來討論參數部分,參數內不能有「空格」,因為參數列是用空格當做區分,如果參數中間有空格會變成兩個參數喔!
如果您要開啟的程式無法接受多個參數輸入就會出問題,如果參數本身有空格則要用 " 標註起來,
格式會變成這樣 Lab_M.StartInfo.Arguments = "\"" + 參數 + "\""

其中 " 因為是特殊字元所以要在前面加上 \ 表示他是特殊字元,請依據我上面說的原則修改一下應該就可以跑了 ^^
本篇文章回覆於2017-05-08 17:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

阿亮
檢舉此回應
感謝,加入參數後已可正常執行。
想再請問一下,加入參數的斜線方向,是如何決定的。
是和參數內的斜線方向相反嗎?
本篇文章回覆於2017-05-09 08:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

神奇
檢舉此回應
\ 是用來標註特殊字元的,如果參數內需要用到 \ 則打 \\ 即可,但一般指定命令列參數是用 /
本篇文章回覆於2017-05-09 11:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

阿亮
檢舉此回應
不好意思可以再請問一下,關於StartInfo.Arguments的參數設定有其他限制嗎?
原來的參數是列印檔案和printer的名稱。
現在想加入重覆列印的參數
看過說明文件確認是重覆列印參數為/D

可是加入後執行程式,只會印出一次。
是列印參數的部分還要加入什麼嗎?
本篇文章回覆於2017-05-15 17:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

神奇
檢舉此回應
應該和其他參數一樣不需要加入什麼了,建議您先在 CMD 模式下自行測試看看是否可行
本篇文章回覆於2017-05-15 18:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.