我的应用程序安装了虚拟打印机驱动程序。
在某些用户的系统上,我需要重新启动打印机假脱机程序,因为OpenPrinter等函数返回RPC_S_SERVER_UNAVAILABLE(文本为“RPC服务器不可用。”),这意味着假脱机程序已停止工作。
我尝试通过CreateProcess调用“net start spooler”来实现这一点:
PROCESS_INFORMATION pi = { 0 };
STARTUPINFO si = { sizeof(si) };
// later
CreateProcess(0, "net start spooler", 0, 0, 0, 0, 0, 0, &si, &pi );
在某些用户的系统上,这可以正常工作,但在其他用户系统上,它会因退出代码2而失败,并且GetLastError返回ERROR_NO_MORE_FILES(文本为“没有更多文件。”)。
有谁知道ERROR_NO_MORE_FILES在这种情况下的含义是什么?
答案 0 :(得分:2)
您似乎以错误的方式解释了ERRORLEVEL代码2。它不是代码ERROR_NO_MORE_FILES
。我在用户帐户下启动了cmd.exe ,并收到了以下输出
C:> echo%errorlevel%0
C:\ Users \ Rita> net stop spooler System 错误5已经发生。
访问被拒绝。
C:> echo%errorlevel%2
任何大于0的“net.exe”退出代码都是错误。
我建议您使用StartService启动该服务,然后您将获得更多错误控制。