Печать из службы Windows - PullRequest
2 голосов
/ 17 мая 2010

Хорошо, я пытаюсь распечатать страницу из службы Windows, которую я установил с помощью проекта установки Visual Studio.

Сначала я установил свойство Account yo Local System, но оно сообщит мне, что принтеры не установлены (и есть). Поэтому я изменил его на пользовательский, и теперь он просто не печатается (без ошибок или чего-либо еще).

Я немного поработал в Google, и в основном он сказал, что «Взаимодействие с рабочим столом» должно быть включено. Для этого вам нужно отредактировать настройки реестра для этого сервиса (что действительно является вторым призом). Я попытался вручную установить его в диалоговом окне свойств в разделе «Службы», но затем мне нужно изменить учетную запись на «Локальная система», что возвращает меня к проблеме «принтеры не установлены».

Есть идеи?

1 Ответ

2 голосов
/ 17 мая 2010

Я бы не рекомендовал использовать взаимодействие с рабочим столом. Вы столкнетесь с проблемами совместимости в Vista, Windows 7 и более поздних версиях Windows.

Вы можете использовать WTSQueryUserToken , чтобы получить токен пользователя для вошедшего в систему пользователя, а затем распечатать его. Вы можете сделать это, используя CreateProcessAsUser , чтобы выполнить фактическую печать.

Для получения зарегистрированных сеансов вы можете использовать WTSGetActiveConsoleSessionId или WTSEnumerateSessions .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...