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

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

 

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

126         #endregion

  1 #region 系统操作

  1.  2         private void btnReboot_Click(object sender, EventArgs e)
  2.  3         {
  3.  4             OperatingSystemControl("重启", "Reboot", new object[] { ComputerStatus.Reboot });
  4.  5         }
  5.  6 
  6.  7         private void btnShutDown_Click(object sender, EventArgs e)
  7.  8         {
  8.  9             OperatingSystemControl("关机", "ShutDown", new object[] { ComputerStatus.Shutdown });
  9.          }
  10.  
  11.  
  12.          public void OperatingSystemControl(string word, string cmd, object[] prams)
  13.          {
  14.              DialogResult result = MessageBox.Show("确定要" + word + "吗?", "请确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
  15.              if (result == DialogResult.Yes)
  16.              {
  17.                  ManagementClass mo = new ManagementClass("Win32_OperatingSystem");
  18.                  mo.Scope.Options.EnablePrivileges = true;
  19.                  foreach (ManagementObject n in mo.GetInstances())
  20.                  {
  21.                      n.InvokeMethod(cmd, prams);
  22.                  }
  23.                  mo.Dispose();
  24.              }
  25.          }
  26.  
  27.          private void btnLogoff_Click(object sender, EventArgs e)
  28.          {
  29.              OperatingSystemControl("注销", "Win32Shutdown", new object[] { ComputerStatus.LogOff });
  30.          }
  31.  
  32.          private void btnForcedLogoff_Click(object sender, EventArgs e)
  33.          {
  34.              OperatingSystemControl("强制注销", "Win32Shutdown", new object[] { ComputerStatus.ForcedLogOff });
  35.          }
  36.  
  37.          private void btnForcedReboot_Click(object sender, EventArgs e)
  38.          {
  39.              OperatingSystemControl("强制重启", "Win32Shutdown", new object[] { ComputerStatus.ForcedReboot });
  40.          }
  41.  
  42.          private void btnForcedShutDown_Click(object sender, EventArgs e)
  43.          {
  44.              OperatingSystemControl("强制关机", "Win32Shutdown", new object[] { ComputerStatus.ForcedShutdown });
  45.          }
  46.  
  47.          private void btnPoweroff_Click(object sender, EventArgs e)
  48.          {
  49.              OperatingSystemControl("关闭电源", "Win32Shutdown", new object[] { ComputerStatus.PowerOff });
  50.          }
  51.  
  52.          private void btnFocedPoweroff_Click(object sender, EventArgs e)
  53.          {
  54.              OperatingSystemControl("强制关闭电源", "Win32Shutdown", new object[] { ComputerStatus.ForcedPowerOff });
  55.          }
  56.          #endregion 1 #region VS操作
  57.  2         private void btnStartiPush_Click(object sender, EventArgs e)
  58.  3         {
  59.  4             //Process p = new Process();
  60.  5             //p.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe";
  61.  6             //p.StartInfo.Arguments = string.Format("/command File.OpenFile {0}", @"E:\Work\iPush.sln");    //設定程式執行參數
  62.  7             //p.StartInfo.UseShellExecute = false;        //關閉Shell的使用
  63.  8             //p.StartInfo.RedirectStandardInput = true;   //重定向標準輸入
  64.  9             //p.StartInfo.RedirectStandardOutput = true;  //重定向標準輸出
  65.              //p.StartInfo.RedirectStandardError = true;   //重定向錯誤輸出
  66.              //p.StartInfo.CreateNoWindow = true;          //設置不顯示窗口
  67.  
  68.              //p.Start();   //啟動
  69.  
  70.              StartProject(cbProjects.SelectedValue.ToString());
  71.          }
  72.          public void StartProject(string projectUrl)
  73.          {
  74.              Process p = new Process();
  75.              p.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe";
  76.              p.StartInfo.Arguments = string.Format("{0}", projectUrl);    //設定程式執行參數
  77.              p.StartInfo.UseShellExecute = false;        //關閉Shell的使用
  78.              p.StartInfo.RedirectStandardInput = true;   //重定向標準輸入
  79.              p.StartInfo.RedirectStandardOutput = true;  //重定向標準輸出
  80.              p.StartInfo.RedirectStandardError = true;   //重定向錯誤輸出
  81.              p.StartInfo.CreateNoWindow = true;          //設置不顯示窗口
  82.  
  83.              p.Start();   //啟動
  84.          }
  85.          private void btnChoiseFile_Click(object sender, EventArgs e)
  86.          {
  87.              OpenFileDialog file = new OpenFileDialog();
  88.              if (file.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  89.              {
  90.                  string fileUrl = file.FileName;
  91.                  string type = fileUrl.Substring(fileUrl.LastIndexOf('.'));
  92.                  if (type == ".sln")
  93.                  {
  94.                      MessageBox.Show(file.SafeFileName);
  95.                      //StartProject(fileUrl);
  96.                      XmlDocument doc = new XmlDocument();
  97.                      doc.Load("Project.xml");
  98.                      XmlNode node = doc.SelectSingleNode("projects");
  99.                      XmlElement xe1 = doc.CreateElement("project");
  100.                      xe1.SetAttribute("id", file.SafeFileName.Substring(0, file.SafeFileName.LastIndexOf('.')));
  101.                      //xe1.SetAttribute("name", file.SafeFileName.Substring(0, file.SafeFileName.LastIndexOf('.')));
  102.                      //xe1.SetAttribute("path", fileUrl);
  103.                      XmlElement xesub1 = doc.CreateElement("name");
  104.                      xesub1.InnerText = file.SafeFileName.Substring(0, file.SafeFileName.LastIndexOf('.'));
  105.                      xe1.AppendChild(xesub1);
  106.                      XmlElement xesub2 = doc.CreateElement("path");
  107.                      xesub2.InnerText = fileUrl;
  108.                      xe1.AppendChild(xesub2);
  109.                      node.AppendChild(xe1);
  110.                      doc.Save("Project.xml");
  111.  
  112.                      initProjects();
  113.                  }
  114.              }
  115.              else
  116.              {
  117.                  MessageBox.Show("false");
  118.              }
  119.          }
  120.  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. 我的第一个javascript网页作业

    1: <html> 2: <title> 3:   4: </title> 5: <body> 6: <style type="text ...

  2. BZOJ 3170: [Tjoi 2013]松鼠聚会 切比雪夫距离

    3170: [Tjoi 2013]松鼠聚会 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  3. HashMap解决hash冲突的方法

    HashMap 采用一种所谓的“Hash 算法”来决定每个元素的存储位置.当程序执行 map.put(String,Obect)方法 时,系统将调用String的 hashCode() 方法得到其 h ...

  4. SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】

    注意:此文章是个人原创.希望有转载须要的朋友们标明文章出处.假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...

  5. gdb在运行maintenance info program-spaces命令时coredump

    coredump时的信息: (gdb) maintenance info program-spaces *** Error in `gdb': free(): invalid pointer: 0x0 ...

  6. extern的困惑

    摘自:http://blog.csdn.net/fxjtoday/article/details/6021845 如果想明白为什么需要extern, 需要从编译和链接讨论起, 现代编译器一般采用按文件 ...

  7. 03 InnoDB锁问题

    InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION):二是采用了行级锁.行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题.下面我们先介绍一点背景知识 ...

  8. 小白日记31:kali渗透测试之Web渗透-扫描工具-Arachni

    扫描工具-Arachni Kali中集成旧的arachni的阉割版,所以需要重新安装[在某些方面有其独特性,但不算很强大,有命令行和web两种使用方式][匿名者推荐] apt-get update h ...

  9. sql 自定义函数--固定格式字符转时间类型

    遇到一个德国的客户,他们的时间格式是JJJJ-TT-DD HH:MM:SS,程序按照这个格式将时间插入数据库,但是在sql自带的转换函数convert.cast过程中报错,网上搜了下都说用conver ...

  10. linux-软连接

    ln -s /opt/lampp/bin/mysql(绝对路径) /usr/local/bin(软连接目录或者文件) 如果不愿意配置环境变脸可以直接创建env查出的路径下建连接