2011-04-12 43 views
1

我遇到了一个奇怪的问题。德尔福不认识到多台打印机存在

我的程序是使用Delphi7开发的。在运行Windows 7 64位的客户端计算机上,即使安装了多个打印机,Printer.Printers.Count也会返回0。

MS Word打印没有问题,并返回正确的打印机列表。

显然,它曾经在同一台计算机上工作,然后在过去的某个点停止工作。

最近安装了后台打印程序和网络打印机。

当然,这可能会导致这个问题,但它仍然不能解释为什么Word会看到打印机,而Delphi不会。

任何想法?

谢谢!


编辑:运行使用提升的权限程序解决的问题。重点是Martijn。谢谢!

+3

我觉得这不是一个真正的Delphi编程问题,甚至是一个可回答的问题...... – 2011-04-12 15:32:47

+1

我想你需要在远程计算机上进行调试以了解发生了什么。对于这种情况,没有通用的解决方案(除了在该系统上进行调试或重新安装Windows) – 2011-04-12 15:41:01

+0

打印机是否显示在Windows打印机和设备面板中? – 2011-04-12 16:43:31

回答

4

这听起来有点像您正在使用提升的权限(即以管理员身份)运行程序,未安装打印机,因为它们都在用户的常规帐户下。

反之亦然(安装为管理员的打印机对于以有限的帐户权限运行的程序无法访问)。我想这属于http://superuser.com

4

TPrinter.Printers使用外部窗口功能EnumPrinters。如果有问题应该用你的主机!
您可以在运行相同操作系统“Windows 7 64bit”的计算机上测试您的应用程序,如果运行没有问题,那么您可以确定问题不在于您的Delphi代码。

+0

感谢您的确认。我以为德尔福会使用标准的Windows功能,这就是为什么我惊讶... – Steve 2011-04-13 07:19:39