通过注册表检测Office是32位还是64位

时间:2010-02-04 23:20:52

标签: registry ms-office 32bit-64bit office-2010

现在Office还提供64位安装,在注册表中你会发现安装的Office版本是32位还是64位?

29 个答案:

答案 0 :(得分:49)

来自64-bit editions of Office 2010上的TechNet文章:

  

如果您已安装Office 2010   包括Microsoft Outlook 2010,   Outlook设置名为的注册表项   安装它的计算机上 REG_SZ 位度。该    Bitness 注册表项指示是否安装Outlook 2010   是32位还是64位。这可能是   对管理员有用   有兴趣审核计算机   确定安装的版本   Office 2010在他们的组织中。

     
      
  • 注册表路径: HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Office \ 14.0 \ Outlook
  •   
  • 如果您已安装Office 2013,请使用此功能     注册表路径: HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Office \ 15.0 \ Outlook
  •   
  • 注册表项:位置
  •   
  • 值:x86或x64
  •   

和同一篇文章中的其他地方:

  

从Office 2010开始,Outlook就是   可用作32位应用程序和   一个64位的应用程序。版本   您选择的Outlook(比特)   取决于Windows的版本   操作系统(32位或64位)   Office 2010的版本(32或   64位)安装在   计算机,如果已经是Office   安装在那台电脑上。

     

决定可行性的因素   安装32位或64位   Outlook的版本包括   以下内容:

     
      
  • 您可以在受支持的32位或64位版本的Windows操作系统上安装32位Office 2010和32位Microsoft Outlook 2010。您只能在受支持的64位操作系统上安装64位版本的Office 2010和64位Outlook 2010。
  •   
  • 在64位版本的Windows操作系统上默认安装Office 2010是32位Office 2010。
  •   
  • 如果Office安装在同一台计算机上,则安装的Outlook版本的位数始终与Office 2010的位数相同。也就是说,32位版本的Outlook 2010无法安装在已安装64位版本的其他Office 2010应用程序的同一台计算机上,例如64位Microsoft Word 2010或64位Microsoft Excel 2010.同样,64位版本的Outlook 2010无法安装在已安装32位版本的其他Office应用程序的同一台计算机上。
  •   

答案 1 :(得分:23)

我已经测试了Otaku的答案,即使没有安装Outlook,似乎也会设置Outlook位度值,即使引用的文章没有明确表明会出现这种情况。

答案 2 :(得分:9)

要添加到vtrz的答案,这是我为Inno Setup写的一个函数:

const
  { Constants for GetBinaryType return values. }
  SCS_32BIT_BINARY = 0;
  SCS_64BIT_BINARY = 6;
  { There are other values that GetBinaryType can return, but we're }
  { not interested in them. }

{ Declare Win32 function  }
function GetBinaryType(lpApplicationName: AnsiString; var lpBinaryType: Integer): Boolean;
external 'GetBinaryTypeA@kernel32.dll stdcall';

function Is64BitExcelFromRegisteredExe(): Boolean;
var
  excelPath: String;
  binaryType: Integer;
begin
  Result := False; { Default value - assume 32-bit unless proven otherwise. }
  { RegQueryStringValue second param is '' to get the (default) value for the key }
  { with no sub-key name, as described at }
  { http://stackoverflow.com/questions/913938/ }
  if IsWin64() and RegQueryStringValue(HKEY_LOCAL_MACHINE,
      'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe',
      '', excelPath) then begin
    { We've got the path to Excel. }
    try
      if GetBinaryType(excelPath, binaryType) then begin
        Result := (binaryType = SCS_64BIT_BINARY);
      end;
    except
      { Ignore - better just to assume it's 32-bit than to let the installation }
      { fail.  This could fail because the GetBinaryType function is not }
      { available.  I understand it's only available in Windows 2000 }
      { Professional onwards. }
    end;
  end;
end;

答案 3 :(得分:8)

很遗憾地说,但Otacku和@ clatonh的方法对我来说都不起作用 - 在注册表中没有Outlook Bitness和{90140000-0011-0000- 1000 -0000000FF1CE}(对于64-位没有安装Outlook的Office)。

但是,我发现的唯一方法是使用Windows API函数GetBinaryType(自Windows 2000 Professional以来)检查其中一个Office可执行文件的位数。

例如,您可以检查Winword.exe的位数,该路径存储在
下 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ App Paths \ Winword.exe。

这是MFC代码片段:

CRegKey rk;
if (ERROR_SUCCESS == rk.Open(HKEY_LOCAL_MACHINE, 
  "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Winword.exe", 
  KEY_READ)) {
    CString strWinwordPath;
    DWORD dwSize = MAX_PATH;
    if (ERROR_SUCCESS == rk.QueryStringValue(strWinwordPath, 
        strWinwordPath.GetBuffer(MAX_PATH), &dwSize)) {
            strWinwordPath.ReleaseBuffer();
            DWORD dwBinaryType;
            if (::GetBinaryType(strWinwordPath, &dwBinaryType)) {
                if (SCS_64BIT_BINARY == dwBinaryType) {
                    // Detected 64-bit Office 
                } else {
                    // Detected 32-bit Office 
                }
            } else {
                // Failed
            }
        } else {
            // Failed
        }
    } else {
    // Failed
}

答案 4 :(得分:5)

注意:如果在.NET环境中调用,则查询Outlook应用程序的位置无法可靠地工作

这里,我们在DLL中使用GetBinaryType(),任何应用程序都可以调用它:

  • 如果主机应用程序是64位C / C ++,则GetBinaryType()返回SCS_32BIT_BINARY。
  • 如果主机应用程序是64位.NET(我们在64位系统上测试了“AnyCPU”),GetBinaryType()将返回SCS_64BIT_BINARY。

在同一台计算机上使用完全相同的DLL代码和完全相同的Outlook二进制路径(“c:/ Program Files(x86)/ ...”)。

这意味着您可能需要使用“IMAGE_NT_HEADERS.FileHeader.Machine”条目自行测试二进制文件。

上帝,我讨厌某些Windows API的错误返回值(另请参阅GetVersion()谎言)。

答案 5 :(得分:3)

我发现了这种方法:

如果存在HKLM \ Software \ WOW6432Node,则Windows为64位。

如果存在HKLM \ Software \ WOW6432Node \ Microsoft \ Office,则Office为32位。

如果HKLM \ Software \ WOW6432Node \ Microsoft \ Office不存在,但HKLM \ Software \ Microsoft \ Office确实存在,则Office为64位。

如果HKLM \ Software \ WOW6432Node不存在,则Windows和Office为32位。

来源:Technet Forums

答案 6 :(得分:2)

这是我在VBscript中用来检测Office 64位Outlook的原因:

Dim WshShell, blnOffice64, strOutlookPath
Set WshShell = WScript.CreateObject("WScript.Shell")
blnOffice64=False
strOutlookPath=WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\outlook.exe\Path")
If WshShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") = "AMD64" And _
    not instr(strOutlookPath, "x86") > 0 then 
  blnOffice64=True
  wscript.echo "Office 64"
End If

答案 7 :(得分:2)

您可以在注册表中搜索{90140000-0011-0000- 0000 -0000000FF1CE}。如果粗体数字以0开头,则x86为1,x64为

对我来说它是在 HKEY_LOCAL_MACHINE \ SOFTWARE \微软\办公室\ 14.0 \ {登记} 90140000-0057-0000-0000-0000000FF1CE

Source

答案 8 :(得分:2)

这个InnoSetup代码在Win 10x64和Office 2016 x86下使用(使用'HKLM \ SOFTWARE \ Microsoft \ Office \ ClickToRun \ Configuration'和关键'平台')

[Code]
const
  RegOffice='SOFTWARE\Microsoft\Office\ClickToRun\Configuration';
  RegOfficeKey='Platform';

/// <summary>
/// Get current HKLM version
/// </summary>
function GetHKLM: Integer;
begin
  if IsWin64 then
    Result := HKLM64
  else
    Result := HKLM32;
end;

/// <summary>
/// Check is Microsoft Office is installed or not
/// </summary>
function IsOfficeInstalled (): Boolean;
var
  platform: string;
begin
  RegQueryStringValue(GetHKLM(), RegOffice, RegOfficeKey, platform);
  if platform = 'x86' then begin
   SuppressibleMsgBox('Microsoft Office found (x86 version)' , mbConfirmation, MB_YESNO or MB_DEFBUTTON1, IDYES);
    Result := True;
  end else if platform = 'x64' then begin
    SuppressibleMsgBox('Microsoft Office found (x64 version)', mbConfirmation, MB_YESNO or MB_DEFBUTTON1, IDYES);
    Result := True;
  end else begin
    SuppressibleMsgBox('Microsoft Office NOT found' + platform + '.', mbConfirmation, MB_YESNO or MB_DEFBUTTON1, IDYES);
    Result := False;
  end;
end;

答案 9 :(得分:2)

我找到了检查办公室位置的方法。

我们可以使用此注册表项检查office 365和2016位数:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration

32位平台x86。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration

64位平台x64。

请检查......

答案 10 :(得分:1)

我首先为Outlook写了这个。为Word修改了一点,但它不能在独立安装上工作,因为该键不显示位,只有Outlook。

另外,我写它只支持当前版本的Office,=&gt; 2010

我剥离了所有的设置和后处理......

:checkarch
    IF NOT "%PROCESSOR_ARCHITECTURE%"=="x86" SET InstallArch=64bit
    IF "%PROCESSOR_ARCHITEW6432%"=="AMD64" SET InstallArch=64bit
    IF "%InstallArch%"=="64bit" SET Wow6432Node=\Wow6432Node
GOTO :beginscript

:beginscript
SET _cmdDetectedOfficeVersion=reg query "HKEY_CLASSES_ROOT\Word.Application\CurVer"
@FOR /F "tokens=* USEBACKQ" %%F IN (`!_cmdDetectedOfficeVersion! 2^>NUL `) DO (
SET _intDetectedOfficeVersion=%%F
)
set _intDetectedOfficeVersion=%_intDetectedOfficeVersion:~-2%


:switchCase
:: Call and mask out invalid call targets
    goto :case!_intDetectedOfficeVersion! 2>nul || (
:: Default case
    ECHO Not installed/Supported
    )
  goto :case-install

:case14
    Set _strOutlookVer= Word 2010 (!_intDetectedOfficeVersion!)
    CALL :GetBitness !_intDetectedOfficeVersion!
    GOTO :case-install  
:case15
    Set _strOutlookVer= Word 2013 (!_intDetectedOfficeVersion!)
    CALL :GetBitness !_intDetectedOfficeVersion!
    GOTO :case-install
:case16
    Set _strOutlookVer= Word 2016 (!_intDetectedOfficeVersion!)
    CALL :GetBitness !_intDetectedOfficeVersion!
    goto :case-install
:case-install
    CALL :output_text !_strOutlookVer! !_strBitness! is installed
GOTO :endscript


:GetBitness
FOR /F "tokens=3*" %%a in ('reg query "HKLM\Software%Wow6432Node%\Microsoft\Office\%1.0\Outlook" /v Bitness 2^>NUL') DO Set _strBitness=%%a
GOTO :EOF

答案 11 :(得分:1)

在我的测试中,这里描述的许多方法都失败了,我认为是因为它们依赖于Windows注册表中的条目,而这些条目实际上并不可靠地存在,具体取决于Office版本,安装方式等。因此,另一种方法是完全不使用注册表(好吧,严格来说,它不能解决所提出的问题),而是编写一个脚本,该脚本可以:

  1. 实例化Excel
  2. 将工作簿添加到该Excel实例
  3. 将VBA模块添加到该工作簿
  4. 注入一个小的VBA函数,该函数返回Office的位数
  5. 调用该函数
  6. 清理

以下是在VBScript中实现的方法:

Function OfficeBitness()

    Dim VBACode, Excel, Wb, Module, Result

    VBACode = "Function Is64bit() As Boolean" & vbCrLf & _
              "#If Win64 Then" & vbCrLf & _
              "    Is64bit = True" & vbCrLf & _
              "#End If" & vbCrLf & _
              "End Function"

    On Error Resume Next
    Set Excel = CreateObject("Excel.Application")
    Excel.Visible = False
    Set Wb = Excel.Workbooks.Add
    Set Module = Wb.VBProject.VBComponents.Add(1)
    Module.CodeModule.AddFromString VBACode
    Result = Excel.Run("Is64bit")
    Set Module = Nothing
    Wb.Saved = True
    Wb.Close False
    Excel.Quit
    Set Excel = Nothing
    On Error GoTo 0
    If IsEmpty(Result) Then
        OfficeBitness = 0 'Alternatively raise an error here?
    ElseIf Result = True Then
        OfficeBitness = 64
    Else
        OfficeBitness = 32
    End If

End Function

PS。这种方法的运行速度比这里的其他方法慢(在我的PC上大约为2秒),但是在不同的安装和Office版本中,这种方法可能更加可靠。

几个月后,我意识到可能有一种更简单的方法,尽管仍然可以实例化Excel实例。 VBScript是:

Function OfficeBitness()
    Dim Excel
    Set Excel = CreateObject("Excel.Application")
    Excel.Visible = False
    If InStr(Excel.OperatingSystem,"64") > 0 Then
        OfficeBitness = 64
    Else
        OfficeBitness = 32
    End if
    Excel.Quit
    Set Excel = Nothing
End Function

这取决于以下事实:Application.OperatingSystem在64位Windows上从32位Excel调用时返回Windows (32-bit) NT 10.00或至少在我的PC上会返回。但这在docs中没有提及。

答案 12 :(得分:1)

我之前根据MSDN文档盲目地遵循了答案。今天,事实证明这不是必需的。在安装了Office Home and Student但未包含Outlook的计算机上,HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Outlook存在,但HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Outlook未出现。我现在改变了我的代码,首先寻找“普通”的非Wow6432Node版本。如果存在,它将被使用。如果没有,它将继续查看Wow6432Node版本。这是在基于Inno Setup的安装程序中检查的 - 我不知道Inno Setup使用哪些API。如果您的应用程序没有以相同的方式访问注册表,您可能会看到不同的结果。

答案 13 :(得分:1)

@clatonh:这是我电脑上注册表的路径: HKEY_LOCAL_MACHINE \ SOFTWARE \微软\办公室\ 14.0 \ {注册90140000-002A,0000-1000-0000000FF1CE} 它绝对是64位操作系统上的32位安装。

答案 14 :(得分:1)

我在这些文件夹中都没有名为bitness的密钥。我在这两个文件夹中都有一个名为“default”的键,值为“unset”我的计算机随附Office 2010启动器(我假设是64位)。我删除它并尝试完全安装32位办公室。我一直收到以下消息。该文件不兼容,请检查您是否需要x86或x64版本的程序。

对我有什么建议吗?

答案 15 :(得分:0)

编辑:不触摸RegistryKeys的解决方案-对不起,操作

我发现C#中有一个解决方案-原始代码可以在这里找到: https://blogs.msdn.microsoft.com/webdav_101/2016/07/26/sample-detecting-installed-outlook-and-its-bitness/

我根据需要对其做了一些修改。

只需将正确的outlookPath传递给GetOutlookBitness()

  public enum BinaryType : uint

    {
        SCS_32BIT_BINARY = 0, // A 32-bit Windows-based application
        SCS_64BIT_BINARY = 6, // A 64-bit Windows-based application.
        SCS_DOS_BINARY = 1, // An MS-DOS – based application
        SCS_OS216_BINARY = 5, // A 16-bit OS/2-based application
        SCS_PIF_BINARY = 3, // A PIF file that executes an MS-DOS – based application
        SCS_POSIX_BINARY = 4, // A POSIX – based application
        SCS_WOW_BINARY = 2 // A 16-bit Windows-based application
    }



    [DllImport("kernel32.dll")]
    static extern bool GetBinaryType(string lpApplicationName, out BinaryType lpBinaryType);




    public int GetOutlookBitness(string FilePath)
    {
        int bitness = 0;

        if (File.Exists(FilePath))
        {
            BinaryType type;
            GetBinaryType(FilePath, out type);


            switch (type)
            {
                case BinaryType.SCS_32BIT_BINARY:
                    bitness = 32;
                    break;
                case BinaryType.SCS_64BIT_BINARY:
                    bitness = 64;
                    break;
            }
        }

        return bitness;



    }

答案 16 :(得分:0)

我找到了一种更简单的方法。 使用Powershell,我们可以将Excel作为COM对象挂钩。

$user = $env:UserName
$msoExcel = New-Object -ComObject Excel.Application  
$msoExcel | Select-Object -Property OperatingSystem | Out-File "\\SERVER\Path\To\Dump\msoVersion-$user.txt"
exit

以这种方式请求OperatingSystem时,我们得到了奇怪的结果, have a look here. PC3 is mine.

我希望这适合你们。很抱歉缺少代码;我的脚本大部分功能齐全。

修改的: 在您检索完数据后,请不要忘记添加代码以关闭Excel 在昨天测试了这段代码之后,我突然打开了大量的Excel并崩溃了。
这将确保您能让用户和管理员满意(:

[System.Runtime.Interopservices.Marshal]::ReleaseComObject($msoExcel)
Remove-Variable msoExcel

答案 17 :(得分:0)

最简单的方法:在Office 2016应用程序上放置ABOUT图标。示例Excel

1)打开Excel - &gt;档案 - &gt;选项 - &gt;自定义功能区

2)你会看到2个窗格。选择命令来自&amp;自定义功能区

3)从“选择命令”中选择“所有命令”

4)从结果列表中突出显示关于(Excel)

5)从自定义功能区疼痛中,突出显示要放置“关于”图标的任何项目(例如视图)

6)点击底部的新组

7)单击位于两个窗格之间的“添加”按钮。 DONE

现在,当您单击Excel中的“视图”选项卡并单击“关于”时,您将看到32位或64位

答案 18 :(得分:0)

不是通过注册表,而是通过命令行工具:

https://stackoverflow.com/a/6194710/2885897

C:\ Users \ me&gt; assoc .msg

。味精= Outlook.File.msg.15

C:\ Users \ me&gt; ftype Outlook.File.msg.15

Outlook.File.msg.15 =“C:\ Program Files( x86 )\ Microsoft Office \ Root \ Office16 \ OUTLOOK.EXE”/ f“%1”

答案 19 :(得分:0)

在注册表中搜索您感兴趣的办公室组件的安装路径,例如对于Excel 2010,请查看SOFTWARE(Wow6432Node)\ Microsoft \ Office \ 14.0 \ Excel \ InstallRoot。它只能在32位注册表或64位注册表中,而不是两者。

答案 20 :(得分:0)

您不需要编写脚本。看看我偶然发现的这个页面:

https://social.msdn.microsoft.com/Forums/office/en-US/43499ae0-bcb5-4527-8edb-f5a955987b56/how-to-detect-whether-installed-ms-office-2010-is-32-or-64-bit?forum=worddev

总结:

产品代码中的第四个字段表示产品的位数。

{BRMMmmmm-PPPP-LLLL-的 P 000-D000000FF1CE} P000

0表示x86,1表示x64 0-1(这也适用于MSOffice 2013)

答案 21 :(得分:0)

注意:上面列出的上的detectVersion功能不起作用。我有一个64位版本的Office,另一个版本是32.使用此函数的两个版本都返回&#34; 32位&#34;。

手动检查注册表会得出相同的结论:64位和32位(Office 2010 x64和Office 2013 32位)报告32位。

我个人认为Office团队应该只是编写和维护一个易于获取的注册表项。所有加载项都需要引用它,并且当前正在猜测&#34;开发人员被迫使用是一种糟糕的方法。

答案 22 :(得分:0)

我的计算机上不存在Outlook Bitness注册表项。

确定Outlook Bitness的一种方法是检查Outlook.exe本身并确定它是32位还是64位。

具体来说,您可以检查[IMAGE_FILE_HEADER.Machine] [1]类型,这将返回一个表示处理器类型的值。

有关此讨论的优秀背景,请阅读文件的this (outdated link)的PE标题,其中说明;

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#代码here

Magic字段位于IMAGE_OPTIONAL_HEADER结构的开头,距离_IMAGE_NT_HEADERS开头偏移24处为2个字节。它的值为32位0x10B,64位为0x20B。

答案 23 :(得分:0)

检测Office的位数的另一种方法是找出typelib。

例如,要检测Outlook的位数,请按以下步骤编写.JS文件:

function detectVersion()
    var outlooktlib = "TypeLib\\{00062FFF-0000-0000-C000-000000000046}";
    var HKCR = 0x80000000;

    var loc = new ActiveXObject("WbemScripting.SWbemLocator");
    var svc = loc.ConnectServer(null,"root\\default");
    var reg = svc.Get("StdRegProv");

    var method = reg.Methods_.Item("EnumKey");
    var inparam = method.InParameters.SpawnInstance_();
    inparam.hDefKey = HKCR;
    inparam.sSubKeyName = outlooktlib;
    var outparam = reg.ExecMethod_(method.Name,inparam);
    tlibver = outparam.sNames.toArray()[0];

    method = reg.Methods_.Item("GetStringValue");
    inparam = method.InParameters.SpawnInstance_();
    inparam.hDefKey = HKCR;
    inparam.sSubKeyName = outlooktlib + "\\" + tlibver + "\\0\\win32";
    inparam.sValueName = "";
    outparam = reg.ExecMethod_(method.Name,inparam);
    if(outparam.sValue) return "32 bit";

    method = reg.Methods_.Item("GetStringValue");
    inparam = method.InParameters.SpawnInstance_();
    inparam.hDefKey = HKCR;
    inparam.sSubKeyName = outlooktlib + "\\" + tlibver + "\\0\\win64";
    inparam.sValueName = "";
    outparam = reg.ExecMethod_(method.Name,inparam);
    if(outparam.sValue) return "64 bit";

    return "Not installed or unrecognizable";
}

您可以找到其他Office组件的typelib id,并替换它的第一行函数。以下是有趣ID的简要列表:

{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07} - Access
{00020905-0000-0000-C000-000000000046} - Word
{00020813-0000-0000-C000-000000000046} - Excel
{91493440-5A91-11CF-8700-00AA0060263B} - Powerpoint
{0002123C-0000-0000-C000-000000000046} - Publisher
{0EA692EE-BB50-4E3C-AEF0-356D91732725} - OneNote 2010+
{F2A7EE29-8BF6-4A6D-83F1-098E366C709C} - OneNote 2007

以上所有lib id都是通过Windows SDK工具OLE-COM Object Viewer找到的,你可以通过它找到更多的lib id。

这种方法的好处是它适用于所有版本的办公室,并提供对您感兴趣的每个组件的控制。此外,这些密钥位于HKEY_CLASSES_ROOT中并深入集成到系统中,因此即使在沙箱环境中也不太可能访问它们。

答案 24 :(得分:0)

我在基于InnoSetup的脚本中找到了一种安全可靠的方法,通过使用Win32 API函数来了解特定应用程序是32位还是64位(在我的情况下,我需要测试Excel)。这个函数被称为GetBinaryType(),它来自`kernel32'(尽管名称有32位和64位的味道)并且直接查看exe的标题。

答案 25 :(得分:0)

This Wikipedia article州:

  

在64位版本的Windows上,有两个用于应用程序文件的文件夹; "Program Files"文件夹包含64位程序,"Program Files (x86)"文件夹包含32位程序。

因此,如果程序安装在C:\Program Files下,则它是64位版本。如果它安装在C:\Program Files (x86)下,则为32位安装。

答案 26 :(得分:0)

我赢了7 64位+ Excel 2010 32位。 注册表是HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Registration {90140000-002A-0000-1000-0000000FF1CE}

所以这可以说明操作系统的位数,而不是Office的位数

答案 27 :(得分:-4)

如果只想知道已安装的Office 2010版本的位数,则在Office 2010的任何应用程序中,只需单击“文件”,然后单击“帮助”。将列出有关版本号的信息,旁边的括号中的信息可以是(32位)或(64位)。

答案 28 :(得分:-5)

打开Outlook 2013&gt;文件&gt; Office帐户&gt;关于Outlook&gt;点击大“?关于Outlook”按钮&gt;阅读弹出描述