我在HP LaserJet 10 HP打印机上使用LaserJet 2.0打印时遇到了问题。
偶尔(有时一个月一次,有时一天一次)打印机会被“阻塞”,以至于它无法从.net 2.0中打印任何东西。
当调用printDocument.print方法时,即使打印机是从printDialog中选择的,它也会抛出InvalidPrinterException。打印机在线工作(其他所有东西都可以打印在上面),只有通过.net的打印才会被阻塞。
我发现以下注册表项中存在问题:
HKEY_CURRENT_USER\Printers\DevModePerUser 如果存在此键,PrintDocument.PrinterSettings.IsValid将报告“false”。当这个键被擦除的时候,PrintDocument.PrinterSettings.IsValid是‘真’并且打印机正在工作。现在我用以下方法解决这个问题:如果打印机是"HP“,而PrinterSettings是'false‘,那么检查注册表键是否存在,删除该键,然后进行打印。现在,我知道这是站不住脚的,但到目前为止,我还没有发现为什么会发生这种情况。我强调,这种情况只发生在HP LaserJet 10 HP打印机上。在此注册表项存在之前,将完全阻止来自.NET的打印。
有人见过这样的错误吗?如果是的话,解决办法是什么?
编辑:这是记录HP1005打印机的注册表项。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Printers\DevModePerUser]
"HP LaserJet P1005"=hex:48,00,50,00,20,00,4c,00,61,00,73,00,65,00,72,00,4a,00,\
65,00,74,00,20,00,50,00,31,00,30,00,30,00,35,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,04,02,01,\
dc,00,44,05,01,00,00,00,01,00,01,00,00,00,00,00,64,00,01,00,07,00,58,02,01,\
00,01,00,58,02,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,02,\
00,00,00,01,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,02,01,00,00,48,00,50,00,20,00,4c,00,61,00,73,00,65,00,72,00,4a,00,65,\
00,74,00,20,00,50,00,31,00,30,00,30,00,35,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,20,06,00,00,ac,0b,00,00,00,00,00,\
00,00,00,00,00,20,06,00,00,6c,06,00,00,00,00,00,00,12,00,00,00,ec,13,00,00,\
c8,19,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,03,00,00,00,00,00,00,00,64,00,\
00,00,01,00,00,00,0f,27,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,\
00,00,00,00,00,00,96,00,00,00,00,00,00,00,34,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,17,00,\
00,e2,20,00,00,ff,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,12,00,00,00,00,00,00,00,01,00,00,00,00,00,\
00,00,01,00,00,00,01,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,\
00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,01,00,00,00,\
01,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
40,17,00,00,e2,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,64,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,64,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,01,00,\
00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,ff,ff,ff,ff,40,17,00,00,e2,20,00,00,01,00,00,00,01,00,00,00发布于 2009-07-07 10:12:51
我不知道是什么原因造成的,但是知道是什么应用程序设置了这个键可能会对您有所帮助。尝试使用来自http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx的Process中的注册表监视工具
https://stackoverflow.com/questions/1090961
复制相似问题