Qt qaxwidget setcontrol()从文件名到" xxx.doc"在窗口小部件中显示,但winword.exe进程无法退出

时间:2018-03-18 17:03:49

标签: qt ms-word com qt4

我尝试了两种方法将Word文档加载到Qt qaxwidget中,但都没有成功退出winword.exe进程。

我的第一次尝试

ui->axWidget->setControl("D:/1.doc");
QAxObject *app = ui->axWidget->querySubObject("Application");
app->dynamicCall("Quit()");

有时以下内容可行,但不可靠:

ui->axWidget->("Word.Application");
setProperty("DisplayAlerts", false);
setProperty("Visible", false);
ui->axWidget->setControl("D:/1.doc");//then call this line of code

QAxObject *app = ui->axWidget->querySubObject("Application");
ui->axWidget->dynamicCall("Close(bool)", false);
ui->axWidget->clear();
app->dynamicCall("Quit()");

我应该怎么做才能正确关闭你" winword.exe"过程

我的环境是qt4.8.0 + vs2008。

1 个答案:

答案 0 :(得分:0)

第一个解决方案应该是正确的,但还有一些其他因素限制我关闭流程。 第二种解决方案完全是错误,当我拨打ui->axWidget->setControl("D:/1.doc");时," Word.Application"失控了。 所以,我们想要一个 Word文档加入 Qt qaxwidget ,我的解决方案是

QProcess p;  
QString c = "taskkill /im winword.exe /f";  
p.execute(c);  
p.close();