尝试在Windows上重新启动打印机假脱机程序时,'net start spooler'在退出代码2时失败

我的应用程序安装虚拟打印机驱动程序。 在某些用户的系统上,我需要重新启动打印机假脱机程序,因为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在这种情况下意味着什么?     
已邀请:
您似乎以错误的方式解释了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启动该服务,然后您将有更多的错误控制。     

要回复问题请先登录注册