roh*_*han 4 delphi winapi windows-services printers windows-server-2008
我在delphi 7中开发了一个简单的win 32服务,该服务执行一些打印操作。在我们的XP机器上,所有程序都可以正常运行,但在目标Windows 2008标准服务器上,则无法正常运行。当我在print语句周围尝试tryexcept块时,将导致“选择的打印机无效”错误。
当我检查打印机对象的打印机数量并将事件将打印机对象中所有可用的打印机写到文件中时,它可以正常工作。仅当我尝试执行打印(在任何本地和网络打印机上)时,它才会失败。
基于使用google的大量研究,我发现了很多使用本地acct,网络acct,特定acct,LogonAsUser,ImpersonateUser,LoadUserProfile等的建议,但是没有任何效果。我还在已安装的打印机上设置了安全性,以供所有人使用。
这件事真的让我发疯。非常感谢任何帮助。
谢谢
这可能是由于Vista中引入了Session 0 Isolation。服务始终在会话0中运行,但是在XP和更早版本中,第一个登录的用户也在会话0中运行,因此允许服务访问该用户的桌面(从而允许“交互”服务)和资源(例如共享和打印机) 。从Vista开始,用户不再在会话0中运行,因此服务不再有权访问用户特定的资源。服务必须模拟要访问的用户帐户。
| 归档时间: |
|
| 查看次数: |
4897 次 |
| 最近记录: |