最近把公司用的电脑重装了一下,期间用到了驱动精灵,驱动精灵把电脑的全方面信息都显示出来了,让人有种一目了然的感觉,为什么我不自己也写个呢?虽然显示的数据不一定有驱动精灵全单至少是我自己写的,不是吗?

软件写好后,看着显示出来的电脑信息虽然不是很全但是基本信息都有,普通人就够了。这时我又想起了一件事 ,每天上班第一件事是开电脑,第二件事就是打开VS(我的是vs2012),既然每天都固定要做为什么不让它开机就启动呢?于是我结合每天打开vs2012的命令上网搜了些资料完成了此功能,以下是截图,虽然丑了点:

 

  1 #region 硬件信息
  2         //主板信息
  3         public void GetBaseBroad()
  4         {
  5             ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_BaseBoard");
  6             foreach (ManagementObject mo in mos.Get())
  7             {
  8                 lblBaseBroad.Text = mo["Product"].ToString();
  9                 lblBaseBoardProduct.Text = mo["Manufacturer"].ToString();
 10             }
 11 
 12         }
 13         //CPU信息
 14         public void GetCPU()
 15         {
 16             ManagementClass process = new ManagementClass("Win32_Processor");
 17             foreach (ManagementObject mo in process.GetInstances())
 18             {
 19                 //lblCPUTpye.Text = mo["processorId"].ToString();
 20                 lblCPUName.Text = mo["Name"].ToString();
 21                 lblSystem.Text = mo["CurrentClockSpeed"].ToString();
 22             }
 23         }
 24 
 25         //电脑型号
 26         public void GetComputer()
 27         {
 28             ManagementClass computer = new ManagementClass("Win32_OperatingSystem");
 29             foreach (ManagementObject mo in computer.GetInstances())
 30             {
 31                 lblSystem.Text = mo["Caption"].ToString() + "(" + mo["CSDVersion"].ToString() + ")";
 32                 lblComputerName.Text = mo["CSName"].ToString();
 33             }
 34         }
 35 
 36         //内存
 37         public void GetRAM()
 38         {
 39             ManagementClass ram = new ManagementClass("Win32_PhysicalMemory");
 40             foreach (ManagementObject mo in ram.GetInstances())
 41             {
 42                 lblRAM.Text = (Int64.Parse(mo["Capacity"].ToString()) / 1024 / 1024 / 1024).ToString() + "GB (" + mo["Manufacturer"].ToString() + GetDDR(int.Parse(mo["MemoryType"].ToString())) + ")";
 43             }
 44         }
 45 
 46         public string GetDDR(int ddr)
 47         {
 48             string res = string.Empty;
 49             switch (ddr)
 50             {
 51                 case 0: res = "Unknown"; break;
 52                 case 1: res = "Other"; break;
 53                 case 2: res = "DRAM"; break;
 54                 case 3: res = "Synchronous DRAM"; break;
 55                 case 4: res = "Cache DRAM"; break;
 56                 case 5: res = "EDO"; break;
 57                 case 6: res = "EDRAM"; break;
 58                 case 7: res = "VRAM"; break;
 59                 case 8: res = "SRAM"; break;
 60                 case 9: res = "RAM"; break;
 61                 case 10: res = "ROM"; break;
 62                 case 11: res = "Flash"; break;
 63                 case 12: res = "EEPROM"; break;
 64                 case 13: res = "FEPROM"; break;
 65                 case 14: res = "EPROM"; break;
 66                 case 15: res = "CDRAM"; break;
 67                 case 16: res = "3DRAM"; break;
 68                 case 17: res = "SDRAM"; break;
 69                 case 18: res = "SGRAM"; break;
 70                 case 19: res = "RDRAM"; break;
 71                 case 20: res = "DDR"; break;
 72                 case 21: res = "DDR-2"; break;
 73                 default: res = "Non"; break;
 74             }
 75             return res;
 76         }
 77 
 78         //硬盘
 79         public void GetDisk()
 80         {
 81             ManagementClass disk = new ManagementClass("Win32_DiskDrive");
 82             foreach (ManagementObject mo in disk.GetInstances())
 83             {
 84                 lblDisk.Text = mo["Model"].ToString() + "---" + (Int64.Parse(mo["Size"].ToString()) / 1024 / 1024 / 1024).ToString() + " GB";
 85             }
 86         }
 87 
 88         //网卡
 89         public void GetNetWorkCard()
 90         {
 91             ManagementClass disk = new ManagementClass("Win32_NetworkAdapter");
 92             foreach (ManagementObject mo in disk.GetInstances())
 93             {
 94                 lblNetWorkCard.Text = mo["Description"].ToString() + "------";
 95             }
 96         }
 97 
 98         //显卡
 99         public void GetDisplay()
         {
             ManagementClass disk = new ManagementClass("Win32_DisplayConfiguration");
             foreach (ManagementObject mo in disk.GetInstances())
             {
                 lblDisplay.Text = mo["Caption"].ToString() + "------" + mo["BitsPerPel"].ToString();
             }
         }
         //显示器
         public void GetDisplayMonitor()
         {
             ManagementClass disk = new ManagementClass("Win32_DesktopMonitor");
             foreach (ManagementObject mo in disk.GetInstances())
             {
                 lblDisplayMonitor.Text = mo["MonitorManufacturer"].ToString() + "----" + mo["PNPDeviceID"].ToString();
             }
         }
         //声卡
         public void GetSound()
         {
             ManagementClass disk = new ManagementClass("Win32_SoundDevice");
             foreach (ManagementObject mo in disk.GetInstances())
             {
                 //lblSound.Text = mo["Manufacturer"].ToString() + "---" + mo["MPU401Address"].ToString();
             }
         }
 

126         #endregion

  1 #region 系统操作

 2         private void btnReboot_Click(object sender, EventArgs e)
 3         {
 4             OperatingSystemControl("重启", "Reboot", new object[] { ComputerStatus.Reboot });
 5         }
 6 
 7         private void btnShutDown_Click(object sender, EventArgs e)
 8         {
 9             OperatingSystemControl("关机", "ShutDown", new object[] { ComputerStatus.Shutdown });
         }
 
 
         public void OperatingSystemControl(string word, string cmd, object[] prams)
         {
             DialogResult result = MessageBox.Show("确定要" + word + "吗?", "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
             if (result == DialogResult.Yes)
             {
                 ManagementClass mo = new ManagementClass("Win32_OperatingSystem");
                 mo.Scope.Options.EnablePrivileges = true;
                 foreach (ManagementObject n in mo.GetInstances())
                 {
                     n.InvokeMethod(cmd, prams);
                 }
                 mo.Dispose();
             }
         }
 
         private void btnLogoff_Click(object sender, EventArgs e)
         {
             OperatingSystemControl("注销", "Win32Shutdown", new object[] { ComputerStatus.LogOff });
         }
 
         private void btnForcedLogoff_Click(object sender, EventArgs e)
         {
             OperatingSystemControl("强制注销", "Win32Shutdown", new object[] { ComputerStatus.ForcedLogOff });
         }
 
         private void btnForcedReboot_Click(object sender, EventArgs e)
         {
             OperatingSystemControl("强制重启", "Win32Shutdown", new object[] { ComputerStatus.ForcedReboot });
         }
 
         private void btnForcedShutDown_Click(object sender, EventArgs e)
         {
             OperatingSystemControl("强制关机", "Win32Shutdown", new object[] { ComputerStatus.ForcedShutdown });
         }
 
         private void btnPoweroff_Click(object sender, EventArgs e)
         {
             OperatingSystemControl("关闭电源", "Win32Shutdown", new object[] { ComputerStatus.PowerOff });
         }
 
         private void btnFocedPoweroff_Click(object sender, EventArgs e)
         {
             OperatingSystemControl("强制关闭电源", "Win32Shutdown", new object[] { ComputerStatus.ForcedPowerOff });
         }
         #endregion 1 #region VS操作
 2         private void btnStartiPush_Click(object sender, EventArgs e)
 3         {
 4             //Process p = new Process();
 5             //p.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe";
 6             //p.StartInfo.Arguments = string.Format("/command File.OpenFile {0}", @"E:\Work\iPush.sln");    //設定程式執行參數
 7             //p.StartInfo.UseShellExecute = false;        //關閉Shell的使用
 8             //p.StartInfo.RedirectStandardInput = true;   //重定向標準輸入
 9             //p.StartInfo.RedirectStandardOutput = true;  //重定向標準輸出
             //p.StartInfo.RedirectStandardError = true;   //重定向錯誤輸出
             //p.StartInfo.CreateNoWindow = true;          //設置不顯示窗口
 
             //p.Start();   //啟動
 
             StartProject(cbProjects.SelectedValue.ToString());
         }
         public void StartProject(string projectUrl)
         {
             Process p = new Process();
             p.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe";
             p.StartInfo.Arguments = string.Format("{0}", projectUrl);    //設定程式執行參數
             p.StartInfo.UseShellExecute = false;        //關閉Shell的使用
             p.StartInfo.RedirectStandardInput = true;   //重定向標準輸入
             p.StartInfo.RedirectStandardOutput = true;  //重定向標準輸出
             p.StartInfo.RedirectStandardError = true;   //重定向錯誤輸出
             p.StartInfo.CreateNoWindow = true;          //設置不顯示窗口
 
             p.Start();   //啟動
         }
         private void btnChoiseFile_Click(object sender, EventArgs e)
         {
             OpenFileDialog file = new OpenFileDialog();
             if (file.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 string fileUrl = file.FileName;
                 string type = fileUrl.Substring(fileUrl.LastIndexOf('.'));
                 if (type == ".sln")
                 {
                     MessageBox.Show(file.SafeFileName);
                     //StartProject(fileUrl);
                     XmlDocument doc = new XmlDocument();
                     doc.Load("Project.xml");
                     XmlNode node = doc.SelectSingleNode("projects");
                     XmlElement xe1 = doc.CreateElement("project");
                     xe1.SetAttribute("id", file.SafeFileName.Substring(0, file.SafeFileName.LastIndexOf('.')));
                     //xe1.SetAttribute("name", file.SafeFileName.Substring(0, file.SafeFileName.LastIndexOf('.')));
                     //xe1.SetAttribute("path", fileUrl);
                     XmlElement xesub1 = doc.CreateElement("name");
                     xesub1.InnerText = file.SafeFileName.Substring(0, file.SafeFileName.LastIndexOf('.'));
                     xe1.AppendChild(xesub1);
                     XmlElement xesub2 = doc.CreateElement("path");
                     xesub2.InnerText = fileUrl;
                     xe1.AppendChild(xesub2);
                     node.AppendChild(xe1);
                     doc.Save("Project.xml");
 
                     initProjects();
                 }
             }
             else
             {
                 MessageBox.Show("false");
             }
         }
 66         #endregion 

以上是主要代码,代码简单请不要见笑。

WMI查看电脑信息,devenv管理自己的解决方案的更多相关文章

  1. 如何查看电脑最大支持多少GB内存

    第一种方法: 1.打开“开始”菜单,点击“运行”按钮,也可以直接使用[Win + R]组合快捷键打开, 在弹出来的窗口输入“CMD”,然后确定或者按下回车键 2.在命令窗口输入“wmic memphy ...

  2. 【转载】 Windows系统电脑通过设备管理器查看电脑配置信息

    在采购电脑或者使用电脑的过程中,有时候我们需要查看到电脑的所有设备硬件信息,此时就可以通过Windows系统自带的设备管理器界面来查看该电脑所有的设备配置信息,包括CPU型号频率.内存.硬盘型号以及容 ...

  3. 如何查看电脑的GPU信息

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_33690342/article/ ...

  4. Linux组管理、用户管理、查看用户信息、usermod、which、切换用户、修改文件具体权限

    组管理 提示:创建组/删除组的终端命令都需要通过sudo执行 序号 命令 作用 01 groupadd组名 添加组 02 groupdel组名 删除组 03 cat/etc/group 确认组信息 0 ...

  5. 利用WMI检测电脑硬件信息,没办法显示cpu的信息

    但你要给某些系统或软件加密时,需要了解到服务器的硬件信息时,系统和软件会利用WMI检测硬件信息, 而有时我们会遇到检测不到CPU的型号信息,如图 此时的解决方法: 1.确定“服务”里启动了WMI 2. ...

  6. windows如何查看电脑开关机记录

    如何查看电脑开关机记录 (一)如果你只是想查看一下,从昨天关机到今天开机之间有没有人使用我的计算机,在“开始”菜单的运行”中输入“eventvwr.msc”,或者是按下"开始菜单" ...

  7. 【电脑常识】如何查看电脑是32位(X86)还是64位(X64),如何知道硬件是否支持64位系统

    开始->运行->输入cmd确定->输入systeminfo 回车 待加载完成,就会看到如下信息(不同版本略有差异): 一.如何查看电脑是32位(X86)还是64位(X64) 方法2: ...

  8. Liunx下查看服务器硬件信息

    一.如何查看服务器的CPU 今天安装了9台Linux服务器,型号完全不一样(有DELL. HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cpu工作模式 ...

  9. sqlserver检测死锁;杀死锁和进程;查看锁信息

    http://blog.sina.com.cn/s/blog_9dcdd2020101nf4v.html sqlserver检测死锁;杀死锁和进程;查看锁信息 ( ::)转载▼ 标签: sql 检测死 ...

随机推荐

  1. 汇编语言(学习笔记----寄存器CPU互作原理)

    一.段寄存器 1.段寄存器就是提供段地址的,8086CPU有4个段寄存器:CS(代码段寄存器),DS(数据段寄存器),SS(堆栈段寄存器),ES(附加段寄存器) 2.当8086CPU要访问内存时,由这 ...

  2. 梦断代码3-message center消息的集中分发

    上一代产品模块有30多个,从底层硬件基础组件到上层应用控制.qos,各个模块通信据说都是直接向模块索要信息.最坏的死锁情况大概就是这样: 在产品升级后,加入了一个消息中心的模块,负责统一管理各个模块的 ...

  3. 【M20】协助完成“返回值优化(RVO)”

    1.方法返回对象,会导致临时对象的产生,这降低了效率,const Rational operator* (const Rational& lhs,Rational& rhs).有没有什 ...

  4. delphi 11 编辑模式 浏览模式

    编辑模式 浏览模式 设置焦点 //在使用前需要Webbrowser已经浏览过一个网页 否则错误 uses MSHTML; ///获取Webbrowser编辑模式里面的内容procedure EditM ...

  5. python选择排序

    def select_sort(list): for i in range(len(list)): position = i for j in range(i,len(list)): if list[ ...

  6. Android文件选择器的实例分享

    本文给大家讲解下Android文件选择器的使用.实际上就是获取用户在SD卡中选择的文件或文件夹的路径,这很像C#中的OpenFileDialog控件. 此实例的实现过程很简单,这样可以让大家快速的熟悉 ...

  7. C++标准转换运算符const_cast

    前面讲了C++继承并扩展C语言的传统类型转换方式,最后留下了一些关于指针和引用上的转换问题,没有做详细地讲述.C++相比于C是一门面向对象的语言,面向对象最大的特点之一就是具有“多态性(Polymor ...

  8. oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  9. PS将图标变灰

    方法一:直接去色,图像——调整——去色:快捷键ctrl+shift+U 方法二:图像——调整——灰白:快捷键shift+ctrl+alt+B;

  10. Tomcat配置随笔

    启动内存参数的配置 tomcat/bin/catalina.bat 如果是linux 就是 catalina.sh 在rem 的后面增加如下参数 set JAVA_OPTS= -Xms256m -Xm ...