我遇到了一个奇怪的问题。
我的程序是使用Delphi7开发的。在运行Windows 7 64位的客户端计算机上,即使安装了多台打印机,Printer.Printers.Count也会返回0。
MS Word打印没有问题,并返回正确的打印机列表。
显然,它曾经在同一台计算机上工作,然后在过去的某个时刻停止工作。
最近安装了假脱机程序和网络打印机的问题。
当然它可能会导致问题,但它仍然无法解释为什么Word会看到打印机而Delphi却没有。
有什么想法吗?
谢谢!
编辑:使用提升的权限运行程序解决了这个问题。关键是Martijn。谢谢!
答案 0 :(得分:4)
TPrinter.Printers使用外部窗口函数EnumPrinters。如果有问题应该与您的主机!
您可以在运行相同操作系统“Windows 7 64bit”的计算机上测试您的应用程序,如果它运行没有问题,那么您可以确定问题不是您的Delphi代码。
答案 1 :(得分:4)
这听起来有点像你在提升的权限(即管理员)下运行程序,其中没有安装打印机,因为它们都在用户的常规帐户下。
反之亦然(作为管理员安装的打印机无法访问具有有限帐户权限的程序)。
所以我认为这属于http://superuser.com。