如何以编程方式检测32位或64位visio版本?

时间:2010-10-06 13:24:42

标签: c# .net vb.net visio

如何以编程方式检测32位或64位visio版本?

8 个答案:

答案 0 :(得分:2)

您可以检查它是否安装在Program Files (x86)(32位)或Program Files(64位)中,但这不是坚如磐石的。

GetBinaryType API可能是一个更加可靠的解决方案。

答案 1 :(得分:1)

您可以使用以下任一方式搜索Visio EXE文件:

  • Environment.SpecialFolder.ProgramFiles
  • Environment.SpecialFolder.ProgramFilesX86

如果在X86程序文件文件夹中找到Visio EXE文件,那么您就知道它是32位的。另一个文件夹用于64位应用程序。

我不确定这是多么完整,因为Visio可能已安装在Program Files以外的其他文件夹中。在这种情况下,您仍然可以搜索EXE文件,然后尝试分析EXE本身。

为此,请查看以下链接:

答案 2 :(得分:1)

其中一种方法是查看Windows注册表以查看Office节点下是否存在visio(HKLM \ Software \ Wow6432Node \ Microsoft \ Office ...)如果存在,则表示Visio的32位版本。如果HKLM \ Software \ Microsoft \ Office ... lookup返回值,则它可能表示64位版本的visio安装。希望这会有所帮助。

答案 3 :(得分:0)

看看这个question。在使用存储有关程序的信息的exe中找到删除注册表后,评估exe。

答案 4 :(得分:0)

您是否可以详细说明何时需要确定VISIO是64位还是32位?

如果进程正在运行,您可以使用名为IsWow64Process的P / Invoke方法来确定它是否为64位。

您也可以使用IsWow64Process来确定操作系统是32位还是64位。获得操作系统的位空间后,您就可以确定要安装的加载项版本。

根据我的理解,Office 2010和将来的版本,您可以使用VSTO来避免检查VISIO是32位还是64位。您可能需要考虑将来的版本加载项。

由于

此外,我知道这是无关的,但请投票支持这个建议(如果你有时间),因为它会彻底改变软件开发: https://connect.microsoft.com/VisualStudio/feedback/details/526951/screen-object-physicalwidthincentimeters-physicalheightincentimeters-displaymode

答案 5 :(得分:0)

尝试Application.IsVisio32属性

我认为从16位和32位版本的Visio之间存在区别时,它仍然存在,但IsVisio32仍然存在(至少在Visio 2003 32位和Visio2010 32位。

没有IsVisio64属性,但如果可以,请查看64位安装时IsVisio32的用途。

答案 6 :(得分:0)

这是您工作的另一种方式:

答案 7 :(得分:0)

This has the answer. Office在Outlook密钥下添加了一个注册表项(即使未安装Outlook):

  
      
  • 注册表路径:HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Office \ 14.0 \ Outlook
  •   
  • 注册表项:Bitness
  •   
  • 值:x86或x64
  •   

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\15.0\Outlook(Office 2013)也适合我。