C# 32Bit电脑环境帮助类
来源:互联网 发布:电脑rar解压软件 编辑:程序博客网 时间:2024/06/08 07:28
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Management;using System.IO;using System.Diagnostics;using System.Net;namespace Utility{ /// <summary> /// @Author:梁继龙 /// @Date:2012/8/1 /// @Description:32Bit电脑环境帮助类 /// Environment /// </summary> public class ComputerEnvirHelper { public string CpuID; public string MacAddress; public string DiskID; public string IpAddress; public string LoginUserName; public string ComputerName; public string SystemType; public string TotalPhysicalMemory; //单位:M private static ComputerEnvirHelper _instance; /// <summary> /// 使用单例模式的时,其他方法不能用static修饰. /// </summary> /// <returns></returns> public static ComputerEnvirHelper GetInstance() { if (_instance == null) { _instance = new ComputerEnvirHelper(); } return _instance; } /// <summary> /// 构造方法 /// </summary> public ComputerEnvirHelper() { CpuID = GetCpuID(); MacAddress = GetMacAddress(); DiskID = GetDiskNumber(); // IpAddress = GetIPAddress(); LoginUserName = GetSystemUserName(); //SystemType = GetSystemType(); TotalPhysicalMemory = GetTotalPhysicalMemory2(); ComputerName = GetComputerName(); } /// <summary> /// 获取Mac的地址 /// </summary> /// <returns></returns> public string GetMacAddress() { try { //获取网卡硬件地址 string mac = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"] == true) { mac = mo["MacAddress"].ToString(); break; } } moc = null; mc = null; return mac; } catch { return "unknow"; } } /// <summary> /// 获取Ip地址 /// </summary> /// <returns></returns> public string GetIPAddress() { try { //获取IP地址 string st = ""; ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (Convert.ToBoolean(mo) == true) { st = mo.ToString(); //System.Array ar; //ar = (System.Array)(mo.Properties.Value); //st = ar.GetValue(0).ToString(); break; } } moc = null; mc = null; return st; } catch { return "unknow"; } } /// <summary> /// 获取客户端内网IP地址 /// </summary> /// <returns></returns> public string getClientLocalIPAddress() { string localIP = null; try { IPHostEntry ipHost = System.Net.Dns.GetHostEntry(Dns.GetHostName());// Dns.Resolve(Dns.GetHostName()); ; IPAddress ipaddress = ipHost.AddressList[0]; localIP = ipaddress.ToString(); return "内网IP地址:" + localIP; } catch { return "内网IP地址:unknown"; } } /// <summary> /// 获得客户端外网IP地址 /// <param name="downloadIpAddress">从外部网页获得IP地址</param> /// <param name="providerIPAddres">客户端提供的API中获得IP地址</param> /// <returns></returns> public string getClientInternetIPAddress(string downloadIpAddress, string providerIPAddres) { string internetAddress = ""; string reg = "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}";//判断IP的正则表达式 try { using (WebClient webClient = new WebClient()) { internetAddress = webClient.DownloadString(downloadIpAddress); //判断IP是否合法 if (!System.Text.RegularExpressions.Regex.IsMatch(internetAddress, reg)) { internetAddress = webClient.DownloadString(providerIPAddres); } } return "外网IP地址:" + internetAddress; } catch { return "外网IP地址:unknown"; } } /// <summary> /// 获取CPU的ID /// </summary> /// <returns></returns> public string GetCpuID() { try { //获取CPU序列号代码 string cpuInfo = "";//cpu序列号 ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); } moc = null; mc = null; return cpuInfo; } catch { return "unknow"; } } /// <summary> ///获取硬盘编号 /// </summary> /// <returns></returns> public string GetDiskNumber() { ManagementClass mc = new ManagementClass("Win32_PhysicalMedia"); try { //网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。 ManagementObjectCollection moc = mc.GetInstances(); string strID = null; foreach (ManagementObject mo in moc) { strID = mo.Properties["SerialNumber"].Value.ToString(); break; } return strID; } catch (Exception) { throw; } } /// <summary> /// 获取驱动ID /// </summary> /// <returns></returns> public string GetDiskID() { try { String HDid = ""; ManagementClass mc = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { //HDid = (string)mo.Properties["Model"].ToString(); HDid = (String)mo.Properties["Model"].Value.ToString(); } moc = null; mc = null; return HDid; } catch { return "unknow"; } } /// <summary> /// 获取主板编号 /// </summary> /// <returns></returns> public string GetMotherboardNumber() { try { ManagementClass mc = new ManagementClass("Win32_BaseBoard"); ManagementObjectCollection moc = mc.GetInstances(); string strID = null; foreach (ManagementObject mo in moc) { strID = mo.Properties["SerialNumber"].Value.ToString(); break; } return strID; } catch (Exception) { throw; } } /// <summary> ///获取驱动器 ///DriveType驱动类型 ///Name驱动名 /// </summary> /// <returns></returns> public string GetDriveInfo() { string dr = ""; try { DriveInfo[] allDrives = DriveInfo.GetDrives(); // GetDrives : 检索计算机上的所有逻辑驱动器的驱动器名称、Environment.NewLine foreach (DriveInfo driver in allDrives) { dr = "驱动类型:(" + driver.DriveType.ToString() + ")" + "&" + "驱动名:(" + driver.Name + ")"; } return dr; } catch (Exception) { throw; } } /// <summary> /// 操作系统的带有路径 登录用户名 /// </summary> /// <returns></returns> public string GetSystemUserName() { try { string st = ""; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { st = mo.ToString(); } moc = null; mc = null; return st; } catch { return "unknow"; } } /// <summary> /// 物理内存 /// 使用"SELECT * FROM Win32_PhysicalMemory"查询, /// 得到的"Capacity"值就是单根内存的容量.不知为什么 /// 使用这个方法的误差很大,有时候4G的容量只能读出2G /// </summary> /// <returns></returns> public string GetTotalPhysicalMemory1(string SQL) { try { ManagementScope ms = new ManagementScope(); ms.Connect(); ObjectQuery query = new ObjectQuery(SQL); //query.QueryString = "SELECT * FROM Win32_PhysicalMemory"; ManagementObjectSearcher sercher = new ManagementObjectSearcher(ms, query); ManagementObjectCollection memMoc = sercher.Get(); long capacityTemp = 0; foreach (ManagementObject mo in memMoc) { //内存总量等于所有插槽上内存容量之和 capacityTemp += Convert.ToInt64(mo["Capacity"].ToString()); } return capacityTemp.ToString(); } catch (Exception) { throw; } } /// <summary> /// 获取物理内存 /// 误差还是比较大 /// </summary> /// <returns></returns> public string GetTotalPhysicalMemory2() { try { string st = ""; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { st = mo["TotalPhysicalMemory"].ToString(); } moc = null; mc = null; return st; } catch { return "unknow"; } } /// 获取当前进程的磁盘内存,误差还是比较大 /// </summary> /// <returns></returns> public string GetProcessPhysicalMemory() { string str = ""; try { string procName = Process.GetCurrentProcess().ProcessName; using (PerformanceCounter pc = new PerformanceCounter ("Process", "Private Bytes", procName)) { str = (pc.NextValue() / 1000).ToString(); } return str; } catch (Exception) { throw; } } /// <summary> /// 获取当前系统类型 /// </summary> /// <returns></returns> public string GetSystemType() { try { string st = ""; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { st = mo["SystemType"].ToString(); } moc = null; mc = null; return st; } catch { return "unknow"; } } /// <summary> /// 获取计算机名 /// </summary> /// <returns></returns> public string GetComputerName() { try { //return System.Environment.MachineName return System.Environment.GetEnvironmentVariable("ComputerName"); } catch { return "unknow"; } } /// <summary> /// 获取用户名机名 /// </summary> /// <returns></returns> public string GetComputerUserName() { try { return System.Environment.UserName; //return System.Environment.GetEnvironmentVariable("UserName"); } catch { return "unknow"; } } }} //////////////////////////////////////////////////////////////////////////////客户端////////////////////////////////////////////////////////////////using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Model;using BLL;using DAL;using System.Reflection;using log4net;using NPOI.HSSF.UserModel;using System.Data.SqlClient;using Utility; [assembly: log4net.Config.XmlConfigurator(Watch = true)]namespace MyApp{ /// <summary> /// http://www.cnblogs.com/yazdao/archive/2012/03/31/2426458.html /// </summary> public partial class ComputerFrm : Form { public ComputerFrm() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { //listBox1.Items.Clear(); //UsersDAL model = new UsersDAL(); //Module m = model.GetType().Module; //Assembly curAssembly = Assembly.GetExecutingAssembly(); //listBox1.Items.Add("名称:" + m.Name); //listBox1.Items.Add("名称curAssemble:" + curAssembly); //Module[] mods = curAssembly.GetModules(); //foreach (Module md in mods) //{ // listBox1.Items.Add("名称:" + md.Name); //} } //ILog log = log4net.LogManager.GetLogger(typeof(Form1)); private void DataView_Click(object sender, EventArgs e) { Random random = new Random(); List<Users> list = new UsersBLL().GetLists(); dataGridView1.DataSource = list; } /// <summary> /// 对btnConfig_Click /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnConfig_Click(object sender, EventArgs e) { /** * @Author:jilongliang * @Date:2012/7/31 * @Description:Application与AppDomain应用 * * Application.StartupPath 与AppDomain.CurrentDomain.BaseDirectory都是判断当前启动的工程,并体现能找到 * E:\\ASP.NET\\MyApp\\MyApp\\bin\\Debug路径下面,唯有不同的就是AppDomain.CurrentDomain.BaseDirectory * 多了个\\ * Application.Exit();可以实现注销功能 其实与this.Close();类似 */ string Path1 = Application.StartupPath + "\\Images\\images.jpg"; //E:\\ASP.NET\\MyApp\\MyApp\\bin\\Debug string Path2 = System.AppDomain.CurrentDomain.BaseDirectory + "Images\\images.jpg";//E:\\ASP.NET\\MyApp\\MyApp\\bin\\Debug\\ /* * AppDomain.CurrentDomain.SetupInformation.ConfigurationFile这个就截然不同,是在同一个解决方案有两个工程(WinForm与Web) * 到底是用于判断启动是Winform还是web * 一、判断是启动Winform读取是 --->>>//E:\\ASP.NET\\MyApp\\MyApp\\bin\\Debug\\MyApp.vshost.exe.config * 二、判断是启动Web读取到的路径是----->>>E:\\ASP.NET\\MyApp\\WebApp\\web.config * 三、从而可以用String index=Path3.Substring(config.Length - 8);截取后面字符串判去判断,最好把都转换成小写或者大写 * index.ToUpper()="E.CONFIG" / index.ToLower()=="e.config" */ string Path3 = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; } ///////////////////////////////////////////////////////////////////获取电脑环境信息//////////////////////////////////////////////////////////////// /// <summary> /// 获取电脑环境相应的信息 /// new FileInfo(fileName).Length 获取当前文件的大小 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnComputer_Click(object sender, EventArgs e) { txtComputerName.Text = ComputerEnvirHelper.GetInstance().GetComputerName(); txtCompName.Text = ComputerEnvirHelper.GetInstance().GetSystemUserName(); txtAdmin.Text = ComputerEnvirHelper.GetInstance().GetComputerUserName(); txtDiskNum.Text = ComputerEnvirHelper.GetInstance().GetDiskNumber(); txtDriverInfo.Text = ComputerEnvirHelper.GetInstance().GetDriveInfo(); //txtPhysicalMemory.Text = ComputerEnvirHelper.GetTotalPhysicalMemory1("SELECT * FROM Win32_PhysicalMemory"); txtPhysicalMemory.Text = ComputerEnvirHelper.GetInstance().GetTotalPhysicalMemory2(); txtMemory.Text = ComputerEnvirHelper.GetInstance().GetProcessPhysicalMemory(); txtSysTpye.Text = ComputerEnvirHelper.GetInstance().GetSystemType(); txtCUP_ID.Text = ComputerEnvirHelper.GetInstance().GetCpuID(); txtMacAddress.Text = ComputerEnvirHelper.GetInstance().GetMacAddress(); txtIpAddress.Text = ComputerEnvirHelper.GetInstance().GetIPAddress(); txtDriverID.Text = ComputerEnvirHelper.GetInstance().GetDiskID().ToString(); txtInAddress.Text = ComputerEnvirHelper.GetInstance().getClientLocalIPAddress(); string downloadIpAddress = "http://www.google.com/ip"; string providerIPAddres = "http://www.baidu.com/ipaddress"; txtOutIPAddress.Text = ComputerEnvirHelper.GetInstance().getClientInternetIPAddress(downloadIpAddress, providerIPAddres); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } }}
0 0
- C# 32Bit电脑环境帮助类
- 新电脑Linux-64bit安装OpenCL环境Nvidia
- C#时间帮助类
- c# JsonHelper 帮助类
- C# GridView帮助类
- C# Cookie帮助类
- C# 时间帮助类
- C# js帮助类
- C# 分词帮助类
- FireBird C# 帮助类
- C# CookieHelper帮助类
- c# base64帮助类
- C# http帮助类
- C#数据查询帮助类
- C# MySQL DBHelper帮助类
- C#文件帮助类FoderHelper
- c#数据库帮助类SqlHelper
- c#通用json帮助类
- Android开发OpenCV2.4.10环境配置(免Cygwin)-后篇
- Objective - C基础: 第二天 - 9.继承的使用注意
- 灰度图像--频域滤波 傅里叶变换之二维离散傅里叶变换
- IT行业的几大发展趋势
- 联想笔记本电脑连接不到无线网络的解决办法
- C# 32Bit电脑环境帮助类
- EJB+JBOOs运行test程序,EntityManager is null
- VIM 中复制和粘帖
- 考研经验交流汇
- 移动游戏又创记录!2014年为美经济创收324亿
- qtcreator在linux下的安装
- Android学习笔记之数据的内部存储方式实习数据的读写、存储到Cache实现读写
- svn安装
- A. Contest