现在Office也可以使用64位安装,那么在注册表中,你应该去哪里查找已安装的Office是32位还是64位版本呢?
现在Office也可以使用64位安装,那么在注册表中,你应该去哪里查找已安装的Office是32位还是64位版本呢?
GetBinaryType()
,它来自于`kernel32'(尽管名称为32位和64位版本),并直接查看exe的头文件。最佳简单方法:将“关于”图标放在您的Office 2016应用程序上。例如Excel
1)打开Excel -> 文件 -> 选项 -> 自定义功能区
2)您将看到两个面板。选择命令和自定义功能区
3)从选择命令中,选择所有命令
4)从结果列表中突出显示关于(Excel)
5)从自定义功能区中突出显示任何项目(例如"视图"),在其中放置"关于"图标
6)在底部单击"新建组"
7)单击位于两个面板之间的添加按钮。 完成!
现在,在Excel中点击"视图"选项卡并单击"关于",您将看到32位或64位版本。
我的机器上不存在 Outlook Bitness 注册表键。
确定 Outlook Bitness 的一种方法是检查 Outlook.exe 本身,并确定它是32位还是64位。
具体而言,您可以检查 [IMAGE_FILE_HEADER.Machine][1] 类型,这将返回一个指示处理器类型的值。
关于读取文件的PE Header的相关讨论,请参阅this (过时的链接),其中指出:
IMAGE_NT_HEADERS结构是存储PE文件特定信息的主要位置。其偏移量由文件开头处的IMAGE_DOS_HEADER中的e_lfanew字段给出。实际上有两个版本的IMAGE_NT_HEADER结构,一个用于32位可执行文件,另一个用于64位版本。差异非常小,在本讨论中我将认为它们相同。区分这两种格式的唯一正确的、经过Microsoft批准的方式是通过IMAGE_OPTIONAL_HEADER中Magic字段的值(稍后描述)。
IMAGE_NT_HEADER由三个字段组成:
typedef struct _IMAGE_NT_HEADERS {
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
你可以在这里获取C#代码。
Magic字段位于IMAGE_OPTIONAL_HEADER结构的开头,从_IMAGE_NT_HEADERS开始偏移24个字节的位置处有2个字节。它的值为0x10B表示32位,0x20B表示64位。
你不需要编写脚本。看看我偶然发现的这个页面:
总结:
产品代码中的第四个字段表示产品的位数。
{BRMMmmmm-PPPP-LLLL-p000-D000000FF1CE} p000
0 表示 x86,1 表示 x64 0-1(这也适用于 MSOffice 2013)。
我使用的是Win 7 64位+Excel 2010 32位。
注册表路径为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Registration{90140000-002A-0000-1000-0000000FF1CE}。
因此,这可以告诉我们操作系统的位数,而不是Office的位数。
这篇维基百科文章指出:
在64位的Windows版本中,有两个文件夹用于存放应用程序文件;
"Program Files"
文件夹包含64位程序,而"Program Files (x86)"
文件夹包含32位程序。
因此,如果程序安装在C:\Program Files
下,则为64位版本。如果安装在C:\Program Files (x86)
下,则为32位安装。
如果您只想知道已安装的Office 2010版本是哪个位数,则在Office 2010的任何应用程序中,只需单击“文件”,然后单击“帮助”即可。版本号信息将列出,并在其旁边的括号中标注(32位)或(64位)。
打开Outlook 2013 > 文件 > Office账户 > 关于Outlook > 点击大的"? 关于Outlook"按钮 > 阅读弹出的描述