2011-11-19 2 views
0

가상 프린터 앱용 포트 모니터를 직접 쓰고 싶습니다. 이제 Winspools.h에서 일부 함수를 호출하려고 시도하지만 모든 func는 오류 코드 1722를 반환합니다. 스풀러 및 RPCLocator 서비스를 수동으로 시작하는 것은 도움이되지 않습니다.가상 프린터 모니터 대 Windows7 x64 1722 오류

BOOL Result; 

MONITOR_INFO_1 monBuff[256]; 
memset(&monBuff, 256, sizeof(monBuff)); 
DWORD capacity; 
DWORD returned; 

system("net start spooler"); 
system("net start RPCLocator"); 

Result = EnumMonitors(NULL, 2, (LPBYTE)monBuff, sizeof(MONITOR_INFO_1)*256, &capacity, &returned); 
if(!Result) 
    cout<<"Error: "<<GetLastError()<<" occured.\n"; 

MONITOR_INFO_2 monInfo; 
monInfo.pName = "RedLangMonitor"; 
monInfo.pEnvironment = "Windows x64"; 
monInfo.pDLLName = "RedLangMonSrv.dll"; 

Result = AddMonitor(NULL, 2, (LPBYTE)&monInfo); 
if(!Result) 
    cout<<"Error: "<<GetLastError()<<" occured.\n"; 

Result = AddPort(NULL, NULL, "RedLangMonitor"); 
if(!Result) 
    cout<<"Error: "<<GetLastError()<<" occured.\n"; 

나에게 이것을 달성하기 위해 몇 가지 솔루션을 제안 해주십시오 : 여기 내 코드입니다.

답변

0

이상하게도 재부팅 후 문제가 사라졌습니다. 나는 그것이 신비 주의자가 아니었지만 나는이 이상한 행동의 이유를 찾을 시간이 없다는 것을 알고있다.

+0

그런데 ..... – Mordachai

+0

이제 AVP가 winspool에 액세스하는 이유를 발견했습니다. 이제 AVP에 대한 규칙을 추가했습니다. – RazorRunner