我期待在我的工作场所部署一个定义默认纸张尺寸的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