如何使用ShellExecute列印doc並指定印表機? |
答題得分者是:william
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
You can't use ShellExecute in this case, there is no such option: http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q210/5/65.ASP&NoWebContent=1 Better use OLE/COM.
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: You can't use ShellExecute in this case, there is no such option: http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q210/5/65.ASP&NoWebContent=1 Better use OLE/COM.william版主: 小弟不才,看不太懂耶… 小弟有個請求: 您可否舉個例子(寫個Example)給小弟看… 假設在C:\Test.doc的檔案,要用【APF Fax Printer】這一台印表機印該如何用Delphi實現?敬請指教,感激不盡…
------
~小弟淺見,參考看看~ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
var Word: TWordApplication; vFile: OleVariant; begin vFile := 'c:\test.doc'; Word := TWordApplication.Create(self); try Word.ActivePrinter := 'APF Fax Printer'; Word.Documents.Open(vFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam); Word.ActiveDocument.PrintOut(EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam); while Word.BackgroundPrintingStatus>0 do Application.ProcessMessages; finally Word.Quit; Word.Free; end; end; |
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言:william版主: 您的Example小弟試出來了,可以了,感謝版主的解答…阿里阿多var Word: TWordApplication; vFile: OleVariant; begin vFile := 'c:\test.doc'; Word := TWordApplication.Create(self); try Word.ActivePrinter := 'APF Fax Printer'; Word.Documents.Open(vFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam); Word.ActiveDocument.PrintOut(EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam); while Word.BackgroundPrintingStatus>0 do Application.ProcessMessages; finally Word.Quit; Word.Free; end; end; 引言: 試試這個 ShellExecute(0,'printto','C:\test.doc','\\freeprt\hp2200',nil,SW_SHOW) ; 當然, 你要先裝 WORD 才能執行列印, 其中 \\freeprt\hp2200 是我的網路列表機(非預設印表機). 你要改成你電腦上的設定才行.aquarius兄: 您的Example也可以了…感謝您的解答… 不過小弟在試的過程中發現,印表機都一定要是預設印表機,若小弟要使用非預設印表機列印,ShellExecute還是會指向預設印表機… 而使用第二個參數printto一直無法列印,改為print才可執行ShellExecute 小弟是這樣下:(但APF Fax Printer要設為預設印表機才可) ShellExecute(0, 'print', 'C:\test.doc', 'APF Fax Printer', nil, SW_HIDE);
------
~小弟淺見,參考看看~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |