我有一个程序(环境是Windows 7 Enterprise32bit),它扫描可用的串口来检测特定的设备。
但是在许多机器上,打印机驱动程序是在一个串行端口上配置的(这并不意味着实际上有一个打印机连接到该端口)。在这种情况下,我的扫描程序无法打开那个端口来搜索设备。
在Windows上,在启动扫描之前停止假脱机程序就足以解锁打印机驱动程序分配的串行端口。在Windows 7上,这已经不再有效了。如果在COMx上配置了打印机,并且停止了假脱机程序,则无法打开COMx。
我已经用ProcExp检查了进程锁:当假脱机程序运行时,端口由spoolsv.exe进程分配的结果,以及当假脱机程序停止时没有任何人分配的结果。
知道如何暂时解锁打印机分配的端口吗?
我找到的一个解决办法是将每台串行打印机的端口更改为文件:扫描之前,扫描完成后返回到COMx,但我想知道是否有更简单的解决方案。
发布于 2012-10-08 13:14:25
我有一个类似的问题,通过将串口高级属性中的端口名从COM1更改为COM4 (通过设备管理器)来解决。
当时一切都很顺利。一些程序仍然将重命名的端口视为COM1,但现在它们可以访问端口。
https://serverfault.com/questions/420666
复制相似问题