2010-05-17 2 views
1

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

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

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

Любые идеи?

ответ

1

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

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

Чтобы получить зарегистрированные сеансы, вы можете использовать WTSGetActiveConsoleSessionId или WTSEnumerateSessions.

Смежные вопросы