如此处Start Word without Add Ins所述,可以在没有&#34的情况下启动ms word;添加ins"或安全模式" 我想知道在我的SWT应用程序中是否也可以使用OLE嵌入单词?
现在我执行以下操作:
new OleControlSite(clientFrame, SWT.NONE, "Word.Document")
也许有另一个程序ID,类似于" Word.Document"强迫词开始而不添加ins? 也许有一个属性或设置可以实现这个目标?
答案 0 :(得分:0)
此代码在eclipse论坛中,在加载单词后禁用加载项:
https://www.eclipse.org/forums/index.php/t/221747/
int idAddIns = application.getIDsOfNames(new String[] {"COMAddIns"})[0];
Variant addInsVar = application.getProperty(idAddIns);
OleAutomation addIns = addInsVar.getAutomation();
int countID = addIns.getIDsOfNames(new String[] {"Count"})[0];
Variant countVariant = addIns.getProperty(countID);
int addInsItemID = addIns.getIDsOfNames(new String[] {"Item"})[0];
for (int i = 1; i <= countVariant.getInt(); i++) {
Variant addInsItemVariant = addIns.invoke(addInsItemID, new Variant[] {new Variant(i)});
OleAutomation addInsItem = addInsItemVariant.getAutomation();
int addInsItemConnectID = addInsItem.getIDsOfNames(new String[] { "Connect" })[0];
if (addInsItem.getProperty(addInsItemConnectID).getBoolean()) {
int addInsItemNameID = addInsItem.getIDsOfNames(new String[] { "ProgId" })[0];
Variant addInsItemNameVariant = addInsItem.getProperty(addInsItemNameID);
String name = addInsItemNameVariant.getString();
addInsItem.setProperty(addInsItemConnectID, new Variant(false));
}
}
警告:它还会禁用应用程序外部的加载项,因此您可能希望在关闭应用程序后启用它。