答案1
这个问题没有一个答案,并且每个打印机和每个驱动程序的答案可能有所不同。
许多参数都存储在注册表中,但有些参数可能由驱动程序软件存储在磁盘上,有些参数存储在打印机上的非易失性存储器中。
即使在注册表中,除了用户可读的项目外,打印机软件通常还会存储打印机的 DEVMODE 结构。这是一个非常全面的二进制结构,旨在供 C/C++ 程序使用。
DEVMODE 也有两个副本 - 一个是默认副本,另一个是每个用户副本。用户的副本存储在 HKEY_CURRENT_USER 注册表项下,而默认副本存储在 HKEY_LOCAL_MACHINE 中,需要管理员权限才能修改。
找出所有可以存储打印机设置的位置,可能需要跟踪打印机的安装和设置对话框,这将是一项艰巨的项目。
答案2
答案3
我确实找到了一种轻松做到这一点的方法,
提取:
rundll32 printui.dll,PrintUIEntry /Ss /n "PRINTERNAMEHERE" /a File.dat d g
恢复:
rundll32 printui.dll,PrintUIEntry /Sr /n "PRINTERNAMEHERE" /a File.dat u
正如其他人提到的,这可能仍然不适用于某些打印机/驱动程序,但简化了实际必须弄清楚东西在哪里的工作