从Windows服务打印

时间:2010-05-17 14:59:57

标签: printing windows-services

好的,我正在尝试从使用Visual Studio安装项目安装的Windows服务打印页面。

首先我将帐户属性设置为本地系统,但它会告诉我没有安装打印机(并且有)。所以我把它改成了用户,现在它只是不打印(没有错误或任何东西)。

我做了一些谷歌,基本上它说应该启用“与桌面交互”。要以编程方式执行此操作,您需要编辑此服务的注册表设置(这实际上是二等奖)。我尝试在服务下的属性对话框中手动设置它,但后来我需要将帐户更改回本地系统,这会让我回到“无打印机安装”问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我不建议使用与桌面交互。您将在Vista,Windows 7和更高版本的Windows上遇到兼容性问题。

您可以使用WTSQueryUserToken为登录用户获取用户令牌,然后从该用户的令牌进行打印。您可以使用CreateProcessAsUser进行实际打印。

要获取已登录的会话,您可以使用WTSGetActiveConsoleSessionIdWTSEnumerateSessions