我期待在我的工作場所部署一個定義默認紙張尺寸的c#應用程序。沒什麼特別的。它通過調用windows.win32並使用註冊表類來寫入註冊表來工作。創建一個C#應用程序來配置打印機頁面設置
儘管我盡了最大的努力,但我一直無法找到相關的註冊表項來設置紙張大小和註冊的打印機。誰能幫忙?
乾杯!
我期待在我的工作場所部署一個定義默認紙張尺寸的c#應用程序。沒什麼特別的。它通過調用windows.win32並使用註冊表類來寫入註冊表來工作。創建一個C#應用程序來配置打印機頁面設置
儘管我盡了最大的努力,但我一直無法找到相關的註冊表項來設置紙張大小和註冊的打印機。誰能幫忙?
乾杯!
更改註冊表設置不是支持的方式。
正確的方法是使用DEVMODE
結構。
DocumentProperties
函數底部的註釋描述了將新設置(如紙張大小)與現有配置合併的正確方法。
不要擔心它會介紹如何更改應用程序的設置。用level 8調用SetPrinter
函數替換最後一步(CreateDC
)以更改該打印機的全局默認值(或使用級別9更改每個用戶的默認值)。
在C++中執行此操作會更容易,因爲您可以使用Windows提供的頭文件。所涉及的結構非常複雜,獲得正確的p/invoke定義將非常困難。
我不認爲你想要的設置存在。
我發現這個
我不知道一般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
通常的方法來改變打印機參數期間是通過Win32 DEVMODE
結構打印過程。驅動程序本身負責填寫默認值,通常通過其屬性頁進行配置。
更不用說我用過的瀏覽器記得最後一個設置,悲傷地將它留在風景中,以便下次浪費紙張!哎呀! – kenny