如果有关系的话,我认为我们必须更改打印机的默认设置。我们的打印作业是由其他应用程序执行的,因此我们无法在从我们的应用程序内部发起的打印操作的上下文中进行这些更改。除非有某种方法可以在不同的应用程序中修改默认打印设置,否则我认为我们将改变用户对打印机的默认设置,启动我们的打印作业,然后将默认设置恢复为原始值。
我们真的希望仅更改当前用户的默认设置,而不需要任何特殊的UAC提升等...
我怀疑它将使用类似于此MSDN文章中所示的内容,并涉及在DEVMODE结构中设置字段(dmDefaultSource或dmFormName或两者兼有)。
有人愿意试试吗?还是有人有任何要分享的注意事项?
编辑:这里是DEVMODE文档DEVMODE documentation 编辑:我还应该指出,我们正在寻找通用解决方案-而不是针对特定打印机的解决方案(我们在许多环境中部署)。