2015-10-26 53 views
0

我需要更改打印屬性中的設置,以指定:1.「後臺打印文檔...」或2.「直接打印到打印機。」如何通過代碼更改假脫機/直接打印設置?

this answer J ...表示這可以使用PrintQueue Class完成。怎麼樣?

MSDN PrintQueue.isDirect(只讀屬性)這樣說:「此屬性只能 通過Windows常見的打印對話框中設置」

我假設它特別適用於.net,在絕對意義上可能不是真的。那麼如何通過代碼更改假脫機/打印直接設置?

+0

這是我以前的文章中的一個錯誤 - 我已經糾正它。您無法使用該類更改打印模式(後臺打印/直接打印)。您可以使用本地WinAPI調用來完成它,可能只是在高級應用程序中,我不確定。但是,這可能不是您的應用程序應該做的事情。這是一個系統範圍內的設置,它會導致所有應用程序丟失打印後臺打印功能 - 這會嚴重刺激任何使用打印的用戶。如果您需要確保印刷文檔的序列化,最好自己管理它。 –

+0

@J ...好的,不要驚訝。這是專用計算機中使用的一次性應用程序,不用於其他用途。因此,全系統是沒有問題的,刺激用戶也不是問題。當然,我正在同時尋求其他的選擇,但是如果我有這種能力,那將會非常有幫助。 –

+1

好吧,總有...... http://www.undocprint.org/winspool/registry當然,您需要管理員權限才能修改註冊表項,但這是實現它的一種方法。 –

回答

0

從j的評論...

從報價:Windows Spooler Registry

打印機的各種選項可以通過在Windows註冊表中設置。每個 安裝的打印機具有在下面的註冊表路徑的一個子項:\控制\打印\打印機 HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \

在此有一個屬性位圖,在值屬性: REG_DWORD 0002(0×0002)的直接:將文件直接發送至 打印機。

後臺打印程序服務可能需要重新啓動,因爲 的更改纔會生效。

請注意,此註冊表值包含多個屬性。有關更多詳細信息,請參閱Windows Spooler Registry

警告如果使用註冊表編輯器或使用其他方法錯誤地修改了註冊表,則可能會出現嚴重問題。修改註冊表需要您自擔風險。

相關問題