应该如何在window下实现对wps的二次开发
实现效果和在Linux下官方提供的一样,可以嵌入到qt的页面中调用官方提供的api
在Windows下使用过QAXWidget,但是只能嵌入文本区,没有菜单栏,工具栏等内容
也尝试过首先启动了wps,找到了HWND,然后嵌入,但是标题栏隐藏不了
也尝试过遍历wps下面的所有HWND找到,找到最大界面嵌入,但是没法调节嵌入位置和大小,使用setwindowpos的时候会出现如图所示的问题
有没有会这个的,实现这个功能呢

应该如何在window下实现对wps的二次开发
实现效果和在Linux下官方提供的一样,可以嵌入到qt的页面中调用官方提供的api
在Windows下使用过QAXWidget,但是只能嵌入文本区,没有菜单栏,工具栏等内容
也尝试过首先启动了wps,找到了HWND,然后嵌入,但是标题栏隐藏不了
也尝试过遍历wps下面的所有HWND找到,找到最大界面嵌入,但是没法调节嵌入位置和大小,使用setwindowpos的时候会出现如图所示的问题
有没有会这个的,实现这个功能呢

关注让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek
如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞
CONFIG += win32:comcpp
QAxObject *wpsApp = new QAxObject("KWPS.Application");
if (wpsApp) {
wpsApp->setProperty("Visible", true);
QAxObject *documents = wpsApp->querySubObject("Documents");
if (documents) {
QAxObject *document = documents->querySubObject("Open(const QString&)", "C:/test.docx");
if (document) {
// 这里可以对文档进行更多操作
document->dynamicCall("Close(Boolean)", false);
document->deleteLater();
}
documents->deleteLater();
}
wpsApp->dynamicCall("Quit()");
wpsApp->deleteLater();
}cpp
QAxWidget *wpsWidget = new QAxWidget("KWPS.Application");
if (wpsWidget) {
wpsWidget->setProperty("Visible", true);
wpsWidget->setProperty("DisplayAlerts", false); // 可能避免一些干扰
// 这里可能需要进一步探索WPS的COM接口属性来确保菜单等功能正常显示
// 例如,可能需要设置一些与界面显示相关的属性
}希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。