我的应用程序安装了一个虚拟打印机驱动程序。
在一些用户的系统上,我需要重新启动打印机假脱机程序,因为像OpenPrinter这样的函数返回RPC_S_SERVER_UNAVAILABLE (文本是"The RPC server is unavailable."),这意味着假脱机程序已经停止工作。
我试着用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是什么意思吗?
发布于 2011-03-02 20:36:04
您似乎以错误的方式解释了ERRORLEVEL代码2。这不是代码ERROR_NO_MORE_FILES。我在用户帐户下启动了cmd.exe ,并收到以下输出
C:>echo %errorlevel% 0
发生C:\Users\Rita>net停止后台打印程序系统错误%5。
访问被拒绝。
C:>echo %错误级别%2
任何大于0的"net.exe“退出代码都是错误的。
我建议你使用StartService来启动服务,这样你会有更多的错误控制。
https://stackoverflow.com/questions/5165627
复制相似问题