2011-09-15 27 views
3

我期待在我的工作場所部署一個定義默認紙張尺寸的c#應用程序。沒什麼特別的。它通過調用windows.win32並使用註冊表類來寫入註冊表來工作。創建一個C#應用程序來配置打印機頁面設置

儘管我盡了最大的努力,但我一直無法找到相關的註冊表項來設置紙張大小和註冊的打印機。誰能幫忙?

乾杯!

回答

2

更改註冊表設置不是支持的方式。

正確的方法是使用DEVMODE結構。

DocumentProperties函數底部的註釋描述了將新設置(如紙張大小)與現有配置合併的正確方法。

不要擔心它會介紹如何更改應用程序的設置。用level 8調用SetPrinter函數替換最後一步(CreateDC)以更改該打印機的全局默認值(或使用級別9更改每個用戶的默認值)。

在C++中執行此操作會更容易,因爲您可以使用Windows提供的頭文件。所涉及的結構非常複雜,獲得正確的p/invoke定義將非常困難。

0

我不認爲你想要的設置存在。

我發現這個

我不知道一般settings.My想這取決於應用程序,您使用的驅動程序。至少我確定某些 打印機驅動程序有其自己的默認設置(硬編碼或在註冊表中設置)。 某些設置是通過* .ppd文件設置的。

這是IE瀏覽器的打印機設置,你可以玩:

[HKCU \軟件\微軟\的Windows \ CurrentVersion \ Internet設置]

值:類型說明 PageOrientation:REG_DWORD指定頁面方向。有效的設置是1 =縱向,2 =橫向。默認設置爲1. PrintQuality:REG_DWORD指定打印質量。有效設置爲1 =草稿,2 =最終。默認設置爲1. PaperSize:REG_DWORD指定紙張尺寸。有效設置爲1 =信,5 =法律,9 = A4,13 = B5.Default設置爲1。

http://www.pcreview.co.uk/forums/settings-dafault-paper-size-registry-t528995.html

+0

更不用說我用過的瀏覽器記得最後一個設置,悲傷地將它留在風景中,以便下次浪費紙張!哎呀! – kenny

0

通常的方法來改變打印機參數期間是通過Win32 DEVMODE結構打印過程。驅動程序本身負責填寫默認值,通常通過其屬性頁進行配置。