使用QProcess启动流程

我正在尝试使用
QProcess
启动Microsoft单词,如下所示:
QString program = "WINWORD.EXE";
process->start(program);
但没有任何反应。
winword.exe
在路径上(所以当我键入winword.exe字时打开)。 这是正确的方法吗?     
已邀请:
可能是下面的代码将帮助您:
QProcess *process = new QProcess(this);
QString program = "explorer.exe";
QString folder = "C:\";
process->start(program, QStringList() << folder);
我认为你正在尝试执行不包含在全局$ PATH windows变量中的程序,这就是winword.exe不执行的原因。 您还可能需要定义程序的绝对路径,例如:
QString wordPath = "C:\Program Files\Microsoft Office\Office12\WINWORD.EXE"
process->start(wordPath, QStringList() << "");
    
对我来说,我需要添加“characteres:
`m_process->start(""C:\Program Files (x86)\Notepad++\notepad++.exe"");`
    
从Qt文档:   注意:进程已启动   异步,这意味着   started()和error()信号可能是   延迟。调用waitForStarted()来制作   确定该过程已经开始(或已经开始)   未能开始)和那些信号   已被释放。 将doc中提到的信号连接到某些GUI控件或调试输出,看看会发生什么。如果有错误,您应该使用QProcess :: error()检查错误类型。     
如果您尝试启动外部流程的方法在您的代码之后完成,例如:
void foo() {
    ...
    QString program = "WINWORD.EXE";
    process->start(program);
}
和变量
process
被声明为局部变量,它将在方法结束时被销毁,并且不会启动任何外部进程 - 或者正确地看不到它,因为它将在启动后立即被销毁。 在我的案例中,这就是类似问题的原因。希望能帮助到你。     
您只需设置工作目录:
myProcess = new QProcess();
myProcess->setWorkingDirectory("C:\Z-Programming_Source\Java-workspace\Encrypt1\bin\");
或者在开始时这样做:
myProcess->start("dir "My Documents"");
在start()处,您可以输入控制台的命令...阅读手册。 我更喜欢第一种选择。更具可读性。     
QProcess *pro = new QProcess;
QString s = ""C:UsersxyzDesktopExample.exe";
pro ->start(s);
    

要回复问题请先登录注册