c# アプリケーションの Microsoft Windows (Os 名)を見つける方法を教えてください。
「Windows 8 Pro」などは、OS のエディションを意味します。
c# アプリケーションの Microsoft Windows (Os 名)を見つける方法を教えてください。
「Windows 8 Pro」などは、OS のエディションを意味します。
レジストリからオペレーティング システム名を取得できますが、アーキテクチャとサービス パック情報について WMI にクエリを実行する必要があります。
using System.Diagnostics;
...
private string GetOperatingSystemInfo()
{
RegistryKey operatingSystemKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
string operatingSystemName = operatingSystemKey.GetValue("ProductName").ToString();
ConnectionOptions options = new ConnectionOptions();
// query any machine on the network
ManagementScope scope = new ManagementScope("\\\\machineName\\root\\cimv2", options);
scope.Connect();
// define a select query
SelectQuery query = new SelectQuery("SELECT OSArchitecture, CSDVersion FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
string osArchitecture = "";
string osServicePack = "";
foreach (ManagementObject mo in searcher.Get())
{
osArchitecture = mo["OSArchitecture"].ToString();
osServicePack = mo["CSDVersion"].ToString();
}
return operatingSystemName + " " + osArchitecture + " " + osServicePack;
}
WMI の詳細については、MSDNWin32_OperatingSystem
のクラスを参照してください。