前段时间,公司做一个系统检测程序时,遇到对客户端PC硬件、ActiveX组件的检测安装,由于之前没遇到过这种问题,所以当时一下子心里没底做,于时在网上找资料花了不少时间,下面我就把这些代码共享一下,希望对大家以后的工作中遇到此类问题有所帮助。。。
private string strOSCode = "UNKNOWN";
public string OSCode
{
get { return this.strOSCode; }
}
/// <summary>
/// 内存信息
/// </summary>
/// <param name="lpBuffer"></param>
[DllImport("kernel32.dll")]
public static extern void GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);
/// <summary>
/// CPU名称
/// </summary>
/// <returns></returns>
public string GetCPUName()
{
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0");
object obj = rk.GetValue("ProcessorNameString");
string CPUName = (string)obj;
return CPUName.TrimStart();
}
/// <summary>
/// CPU频率
/// </summary>
/// <returns></returns>
public int GetCPUFrequency()
{
RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0");
object obj = rk.GetValue("~MHz");
int CPUFrequency = (int)obj;
return CPUFrequency;
}
/// <summary>
/// 获得操作系统信息
/// </summary>
/// <returns></returns>
public string GetOperationSystemInName()
{
OperatingSystem os = System.Environment.OSVersion;
string osName = "UNKNOWN";
switch (os.Platform)
{
case PlatformID.Win32Windows:
switch (os.Version.Minor)
{
case 0: osName = "Windows 95"; this.strOSCode = "95"; break;
case 10: osName = "Windows 98"; this.strOSCode = "98"; break;
case 90: osName = "Windows ME"; this.strOSCode = "ME"; break;
}
break;
case PlatformID.Win32NT:
switch (os.Version.Major)
{
case 3: osName = "Windws NT 3.51"; this.strOSCode = "3.51"; break;
case 4: osName = "Windows NT 4"; this.strOSCode = "4"; break;
case 5: if (os.Version.Minor == 0)
{
osName = "Windows 2000";
this.strOSCode = "2000";
}
else if (os.Version.Minor == 1)
{
osName = "Windows XP";
this.strOSCode = "XP";
}
else if (os.Version.Minor == 2)
{
osName = "Windows Server 2003";
this.strOSCode = "2003";
}
break;
case 6: osName = "Longhorn"; this.strOSCode = "Longhorn"; break;
}
break;
}
//return String.Format("{0},{1}", osName, os.Version.ToString());
return String.Format("{0}", osName);
}
/// <summary>
/// Get Mac Address
/// </summary>
/// <returns></returns>
public string GetMacAddress()
{
ManagementClass adapters = new ManagementClass("Win32_NetworkAdapterConfiguration");
string MACAddress = "unknown";
foreach (ManagementObject adapter in adapters.GetInstances())
{
if ((bool)adapter["IPEnabled"] == true)
{
MACAddress = adapter.Properties["MACAddress"].Value.ToString();
break;
}
}
return MACAddress;
}
/// 安装/卸载ActiveX 组件
using System.Diagnostics;
Process.Start("regsvr32.exe", 组件.dll/组件.ocx);
Process.Start("regsvr32.exe", 组件.dll/组件.ocx /u);
/// 解压组件CAB 包
Process.Start("expand.exe", 组件.CAB + " \f " + 要解压到硬盘的目录);

浙公网安备 33010602011771号