哪位高手指点(给点代码),我想通过注册表获取硬件信息:如CPU,主板,显卡,声卡等.软件信息就像添加/删除程序里的程序列表.我看是通过using Microsoft.Win32;来操作的,但在网上想找很全的方法代码不多,如果哪位有相关代码,不知道能不能指点一下,或共享看看.谢谢!代码可以发到我信箱:[email protected]
解决方案 »
- Remoting客户端使用log4net的问题?
- C#开发的程序,始终运行着,不知道什么原因关闭了,但进程还在,如何排除错误
- 请教将文本文件导入文本框的算法
- 如何判断ajax的XMLhttp请求和Aspx页面的请求 100分
- 高手请进,关于显示日期的!!!98分的,全部家当了
- C#写入文件到底要怎么写?
- c# graphics的transform属性
- []到底有什么用
- 搞晕了:通过普通html页面就无法上传文件?(Request.Files.Count=0)
- 问一个有关socket通信的问题!急,在线等!
- 请问C#中在一个Form中如何调用其他存在的Form中的变量或控件的值?
- 关于计算机上两个程序同时读取同一个串口数据的问题
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Diagnostics;
using System.Collections;
using System.Runtime.InteropServices;
using System.Management;
namespace 获取系统相关信息
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//获取CPU序列号
private String GetCpuID()
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances(); String strCpuID = null;
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}//end method
private void button1_Click(object sender, EventArgs e)
{
try
{
RegistryKey MyReg = Registry.LocalMachine.OpenSubKey("HARDWARE\\DESCRIPTION\\SYSTEM\\CentralProcessor\\0");
this.label1.Text = "CPU频率:" + MyReg.GetValue("~MHz").ToString() + " MHz";
this.label4.Text = "CPU标识:" + MyReg.GetValue("Identifier").ToString();
this.label3.Text = "CPU名称:" + MyReg.GetValue("ProcessorNameString").ToString();
this.label2.Text = "CPU供应商:" + MyReg.GetValue("VendorIdentifier").ToString(); this.label16.Text = "CPU序列号:" + GetCpuID(); }
catch (Exception ex)
{
MessageBox.Show("读取注册表信息发生错误!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
} private void button2_Click(object sender, EventArgs e)
{
//获取操作系统的版本信息
Process MyProcess = new Process();
//设定程序名
MyProcess.StartInfo.FileName = "cmd.exe";
//关闭Shell的使用
MyProcess.StartInfo.UseShellExecute = false;
//重定向标准输入
MyProcess.StartInfo.RedirectStandardInput = true;
//重定向标准输出
MyProcess.StartInfo.RedirectStandardOutput = true;
//重定向错误输出
MyProcess.StartInfo.RedirectStandardError = true;
//设置不显示窗口
MyProcess.StartInfo.CreateNoWindow = true;
//执行VER命令
MyProcess.Start();
MyProcess.StandardInput.WriteLine("Ver");
MyProcess.StandardInput.WriteLine("exit");
//从输出流获取命令执行结果,
string StrInfo = MyProcess.StandardOutput.ReadToEnd();
this.textBox1.Text = StrInfo.Substring(0, StrInfo.IndexOf("Corp.") + 5);
}
string driveSerialNum = "";
private void button3_Click(object sender, EventArgs e)
{
Scripting.FileSystemObjectClass MySystem = new Scripting.FileSystemObjectClass();
foreach (Scripting.Drive MyDriver in MySystem.Drives)
{
string DriveLetter = "";
string DriveType = "";
string VolumeName = "";
string SerialNumber = "";
string FileSystem = "";
try
{
DriveLetter = MyDriver.DriveLetter.ToString();
DriveType = MyDriver.DriveType.ToString();
VolumeName = MyDriver.VolumeName;
SerialNumber = MyDriver.SerialNumber.ToString();
FileSystem = MyDriver.FileSystem;
driveSerialNum =driveSerialNum +SerialNumber ;
}
catch (Exception Err)
{
}
string[] SubItems ={ DriveLetter, DriveType, VolumeName, SerialNumber, FileSystem };
ListViewItem MyItem = new ListViewItem(SubItems);
this.listView1.Items.Add(MyItem);
label17.Text = "计算机硬盘的编号:" + driveSerialNum;
}
}
private void button4_Click(object sender, EventArgs e)
{
//获取系统信息
try
{
this.label14.Text = "用户名:" + SystemInformation.UserName;
this.label13.Text = "计算机名:" + SystemInformation.ComputerName;
this.label12.Text = "操作系统:" + Environment.OSVersion.Platform;
this.label11.Text = "版本号:" + Environment.OSVersion.Version;
this.label15.Text = "NetBIOS的名称:" + Environment.MachineName;
if (SystemInformation.BootMode.ToString() == "Normal")
this.label7.Text = "启动方式:正常启动";
if (SystemInformation.BootMode.ToString() == "FailSafe")
this.label7.Text = "启动方式:安全启动";
if (SystemInformation.BootMode.ToString() == "FailSafeWithNetwork")
this.label7.Text = "启动方式:通过网络服务启动";
if (SystemInformation.Network == true)
this.label8.Text = "网络连接:已连接";
else
this.label8.Text = "网络连接:未连接";
this.label9.Text = "显示器数量:" + SystemInformation.MonitorCount.ToString();
this.label10.Text = "显示器分辨率:" + SystemInformation.PrimaryMonitorMaximizedWindowSize.Width.ToString() + "X" +
SystemInformation.PrimaryMonitorMaximizedWindowSize.Height.ToString();
}
catch (Exception Err)
{
MessageBox.Show("获取系统信息发生错误!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
} }
}