【问题标题】:Virtual Printer Monitor vs Windows7 x64 1722 error虚拟打印机监视器与 Windows7 x64 1722 错误
【发布时间】:2011-11-19 14:46:04
【问题描述】:

我想为虚拟打印机应用程序编写自己的端口监视器。现在我尝试从 Winspools.h 调用一些函数,但每个函数都返回错误代码 1722。手动启动 Spooler 和 RPCLocator 服务没有帮助。这是我的代码:

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";

请给我一些解决方案来实现这一点。

【问题讨论】:

    标签: c++ printing virtual monitor


    【解决方案1】:

    这有点奇怪,但重启 2 次后问题就消失了。我知道,那不是神秘主义者,但我没有时间去寻找这种奇怪行为的原因。

    【讨论】:

    • 现在我找到了原因 - 我的 AVP 阻止了对 winspool 的访问。现在我为 AVP 添加了规则。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    相关资源
    最近更新 更多