我正在準備一個Windows窗體應用程序,它將顯示當前安裝的Office的位數(2016)。我已經在我的表單中放置了一個Button(ChkBtn)和一個Label(BitnessLbl),這將有助於完成我的任務。 問題是,即使我可以通過在註冊機構中搜索找到'Bitness'('x64')的值,但程序無法找到指定的註冊機構。我添加了一個圖像,可以進一步解釋我的問題。而我使用的代碼如下如何從LOCAL_MACHINE的註冊表中讀取
using System;
using System.Windows.Forms;
using Microsoft.Win32;
namespace GetOfficeBitness
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void ChkBtn_Click(object sender, EventArgs e)
{
var arg = @"SOFTWARE\Microsoft\Office\16.0\Outlook";
var key = Registry.LocalMachine.OpenSubKey(arg, false);//OpenSubKey(arg);
/*var p = Registry.LocalMachine.GetSubKeyNames();
var l = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Office\16.0\Common");
var n = l.GetSubKeyNames();*/
if (key != null)
{
if (key.GetValue("Bitness").ToString() == "x86" || key.GetValue("Bitness").ToString() == "X86")
BitnessLbl.Text = @"32 Bit Office";
//Environment.Exit(1);
}
else
{
//Environment.Exit(0);
BitnessLbl.Text = @"64 Bit Office";
}
}
}
}
圖片鏈接到這裏: - https://i.stack.imgur.com/XUcuX.png
沒有圖像,在代碼中的一些錯誤,請更正。 – pitersmx
https://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.openbasekey(v=vs.110).aspx –
嗨pitersmx,我糾正了錯誤。請檢查... – Izqry