时间:2011-01-06 19:17:17

标签: delphi winapi windows-services windows-server-2008 printers

3 个答案:

答案 0 :(得分:5)

这可能是由于Vista中引入的Session 0 Isolation造成的。服务始终在会话0中运行,但在XP及更早版本中,第一个登录用户也在会话0中运行,从而允许服务访问该用户的桌面(从而允许“交互”服务)和资源(如共享和打印机) 。在Vista之后,用户再也不会在会话0中运行,因此服务不再能够访问用户特定的资源。服务必须模拟其要访问的用户帐户。

答案 1 :(得分:3)

总是很难回答“它不起作用”的问题。但我可以推测。微软已经警告过过去从服务打印。我认为问题是打印机驱动程序很少设计为在Windows 2008提供的那种服务环境中运行。服务在隔离的会话中运行,它们不再与桌面交互。打印机驱动程序往往过于繁琐,做了提示用户发生卡纸的事情。或者是时候购买新的工厂批准的碳粉盒了。这在第0场会议中效果不佳,没有人能听到它尖叫。相当不可知,你只是不知道为什么服务被抓住了。

也许他们在2008年将其钉死并完全阻止了它。不知道,你会在serverfault.com找到知道这个的人

答案 2 :(得分:0)

我得到了同样的错误,很多谷歌工作已经完成http://www.codenewsfast.com/cnf/article//permalink.art-ng1612q9464

似乎delphi 2007打印机单元:Printer.pas不适用于Vista及以上版本。 引用的条目提供了更改Printer.pas源的选项。 在Vista上,它解决了我的问题。