2010-05-17 2 views
1

좋아, Visual Studio 설치 프로젝트를 사용하여 설치 한 Windows 서비스에서 페이지를 인쇄하려고합니다.Windows 서비스에서 인쇄

처음에는 Local System 계정 속성을 설정했지만 설치되지 않은 프린터가 있다는 것을 알려줍니다. 그래서 나는 그것을 사용자로 바꿨지 만 지금은 인쇄하지 않는다. (오류나 아무것도 없다.)

나는 Googleing을 일부했으며 기본적으로 "Interact with Desktop"이 활성화되어야한다고 말했습니다. 프로그래밍 방식으로이 작업을 수행하려면이 서비스에 대한 레지스트리 설정 (실제로는 2 등)을 편집해야합니다. 서비스의 속성 대화 상자에서 수동으로 설정하려고했지만 계정을 다시 로컬 시스템으로 변경해야합니다. 그러면 "No Printers Installed"문제가 다시 발생합니다.

아이디어가 있으십니까?

답변

1

데스크톱과 상호 작용하는 것을 사용하지 않는 것이 좋습니다. Vista, Windows 7 및 이후 버전의 Windows에서는 호환성 문제가 발생합니다.

WTSQueryUserToken을 사용하여 로그온 한 사용자의 사용자 토큰을 얻은 다음 해당 사용자 토큰에서 인쇄 할 수 있습니다. 실제 인쇄를 수행하려면 CreateProcessAsUser을 사용하여이 작업을 수행 할 수 있습니다.

로그온 한 세션을 얻으려면 WTSGetActiveConsoleSessionId 또는 WTSEnumerateSessions을 사용할 수 있습니다.

관련 문제