2011-11-19 52 views
0

我想寫我自己的虛擬打印機應用程序的端口監視器。現在我嘗試從Winspools.h調用一些函數,但是每個函數都返回錯誤代碼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

這有些奇怪,但問題在2次重新啓動後消失了。我知道,那不是神祕主義者,但我沒有時間去尋找這種奇怪行爲的原因。

+0

它發生..... – Mordachai

+0

現在我發現原因 - 我的AVP阻止訪問winspool。現在我爲AVP添加了規則。 – RazorRunner