我需要以编程方式检测是否安装了Microsoft Excel 2016(普通Office版本)或Microsoft Excel(Office 365版本)。
检测Microsoft Excel 2016(正常的Office风格)没问题,它可以很好地工作,但是检测Excel Office 365则比较棘手。
我现在要做什么:
HKEY_CLASSES_ROOT\.xlsmm\OpenWithProgids
"AppXdns5t4sbk...."
形式的值)这是很棘手的,如果有人知道更简洁的方法,我将不胜感激。
编辑:
我需要这个的原因:
我的软件允许用户生成Excel文件(使用第三方库),然后在Excel中查看该文件。处理完成后,
当我仅尝试使用ShellExecuteEx
打开.xls文件而未安装Excel时,将弹出Windows 10标准“如何打开此文件”对话框。
即使ShellExecuteEx
返回了一条错误消息,而不是弹出Windows 10对话框(如前所述),该行为也不是我真正想要的,因为.xls文件的生成很漂亮将会发生很长的后续操作:用户执行生成Excel文件的命令,这需要10到15秒钟,然后会弹出一条错误消息,提示未安装Excel。我想事先告诉用户需要安装Excel。
答案 0 :(得分:1)
我建议改为检查位于DisplayName
路径中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
中是否包含Microsoft Office 365
。