首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要以编程方式检测安装的MS Office版本,而不会出现误报/漏报

需要以编程方式检测安装的MS Office版本,而不会出现误报/漏报
EN

Stack Overflow用户
提问于 2011-12-12 19:27:56
回答 1查看 804关注 0票数 2

我需要一种始终有效的方法,而不仅仅是大多数时间。

到目前为止,我一直在使用检查"HKLM\Software\Microsoft\Office\14.0\Word\InstallRoot“注册表项是否存在的方法(14.0表示Word 2010 )。

然而,我最近有一个假阴性,一个用户谁安装了Word 2010,但没有密钥。他的注册表中有HKLM\Software\Microsoft\Office\14.0\Word,但没有HKLM\Software\Microsoft\Office\14.0\Word\InstallRoot.这导致我的程序安装了一个旧版本的工具栏,它没有针对ribbon界面进行优化。

我也有一个假阳性,一个用户之前安装了Word 2007,但后来卸载了它,并将其替换为Word 2003。但是到处都是Office2007的注册表项,它欺骗了我的安装程序,它安装了一个针对功能区进行了优化的工具栏,但它根本无法在Word 2003中加载。

那么有没有更好的方法来检测Office的版本呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-12 20:09:14

获取Word的“活动”版本而不考虑先前/零碎安装的一种方式是请求当前注册的自动化服务器的版本;

代码语言:javascript
复制
[Code]
function WordVer(dummy: String): String;
var
  Obj: Variant;
begin
  try
    Obj := CreateOleObject('Word.Application');
    Result := Obj.Version;
    Obj.Quit(False);
  except
    RaiseException('not installed');
  end;
end;

并使用脚本化常量{code:WordVer}来获取版本字符串(12.0等)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8473589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档