2016-08-29 12 views
1

인쇄 대기열을 가져 와서 대기중인 프린터 문서를 볼 때 표시되는 "소유자"이름을 변경할 수 있는지 알고 싶습니다. 사용자로부터 문서를 받고 Windows 프린터를 보내는 Windows 서비스가 있으며 소유자는 항상 서비스가 실행중인 워크 스테이션에 로그인 한 사용자의 이름입니다. 나는 "소유자"를 다른 것으로 변경하고 싶습니다. 이것은 Windows 서비스가로드하고 사용하는 C++ Windows DLL에서 수행됩니다.C++ 인쇄 대기열 소유자 변경

추가 30분의 8/(16) @ 9 : 14am ET 제안, 토마스에 대한

감사합니다. 나는 내 연구에 대해 언급 했어야했지만 길고 비웠다. MSDN에는 4 개의 구조 중 1 개를 취할 수있는 SetJob 함수가 있습니다 (pJob = JOB_INFO_1 ... JOB_INFO_4). JOB_INFO_1, 2 및 4에는 인쇄 작업 소유자 (Owner?)를 변경하는 데 사용할 수있는 것으로 보이는 LPSTR pUserName이 있습니다. 그러나 SetJob의 비고 섹션에서 다음과 같이 말합니다. "JobJd, pPrinterName, pMachineName, pUserName, pDrivername, Size, Submitted, Time 및 SetJob에 대한 호출에서 JOB_INFO_1, JOB_INFO_2 또는 JOB_INFO_4 구조의 다음 멤버가 무시됩니다. 총 페이지 수 "

그리고 JOB_INFO_3에는이 필드가 없습니다. 좋은.

나는이 일을 할 수있는 다른 기능을 보지 못했습니다. 좀 더 구체적으로 연구 할 수있는 뭔가를 가르쳐 주시겠습니까? 아니면 작동하는 것으로 알려져 있습니까? 감사.

+0

검색 우선 "msdn C++ change print queue owner"를 검색하십시오. –

답변

2

MSDN에서 해당 필드가 무시되는 이유는 확실하지 않습니다. JOB_INFO_1과 함께 SetJob을 사용하여 pUserName, pDocument, pStatus를 변경하면 완벽하게 작동합니다. Position을 JOB_POSITION_UNSPECIFIED로 설정하십시오.