请考虑一下这样的场面
文件夹中有五个文档。选择后,右键单击并选择“打印”,系统将打印。毫无疑问。
但是如果你细心观察一下,就会发现系统打印它们的顺序是随机的,这是为啥呢?并没有什么魔幻的事情发生。
外壳会一次在每个文档上执行”打印”这个动作,根据对应的打印程序事先注册好的打印流程,来执行下面几个动作中的一种:
> 大多数情况下,打印文档的程序会在shell\print\command注册表键值下注册一个简单的命令。在这种情况下,应用程序会打开5次,每次打开不同的文件。所有这些打印命令现在都在争用打印机,问题是程序的哪个实例首先提交其打印作业,这决定了它们从打印机出来的顺序(你可能会看到,最先打印出来的是一份最短和最简单的文档,因为它们需要更少的时间来渲染)。
> 偶尔情况下,打印文档的程序会在shell\print\ddeexec注册表键值下注册一个DDE动作谓词(verb)。在这种情况下,将启动这个应有程序的实例,并每次都指定一个待打印的文件的文件名。对于这些文件的处理,完全取决于应用程序。如果程序支持后台打印,它可能会将文档的打印分流到后台线程上,现在你的解决方案与之前的场景大致相同: 五个后台线程每个都争相查看谁能先提交它们的打印作业。
> 在极少的情况下,打印文档的程序在shell\print\DropTarget注册表键值下注册了一个拖放处理器处理程序(Drop Handler)。在这种情况下,拖放目标(Drop Target)被实例化并被赋予文件列表。然后由拖放目标决定如何处理这些文档。
总结
关于更多关于以上三种打印注册方式的细节信息,可以参考MSDN关于动作谓词(Verb)以及文件关联(File Associations)方面的内容。
小弟就不细说了。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why are documents printed out of order when you multiselect and choose “Print”?》
1.《打印机顺序怎么设置?我来告诉你答案为什么多个文件打印时顺序是随机的?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《打印机顺序怎么设置?我来告诉你答案为什么多个文件打印时顺序是随机的?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3277763.html