WMI查看电脑信息,devenv管理自己的解决方案
最近把公司用的电脑重装了一下,期间用到了驱动精灵,驱动精灵把电脑的全方面信息都显示出来了,让人有种一目了然的感觉,为什么我不自己也写个呢?虽然显示的数据不一定有驱动精灵全单至少是我自己写的,不是吗?
软件写好后,看着显示出来的电脑信息虽然不是很全但是基本信息都有,普通人就够了。这时我又想起了一件事 ,每天上班第一件事是开电脑,第二件事就是打开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管理自己的解决方案的更多相关文章
- 如何查看电脑最大支持多少GB内存
第一种方法: 1.打开“开始”菜单,点击“运行”按钮,也可以直接使用[Win + R]组合快捷键打开, 在弹出来的窗口输入“CMD”,然后确定或者按下回车键 2.在命令窗口输入“wmic memphy ...
- 【转载】 Windows系统电脑通过设备管理器查看电脑配置信息
在采购电脑或者使用电脑的过程中,有时候我们需要查看到电脑的所有设备硬件信息,此时就可以通过Windows系统自带的设备管理器界面来查看该电脑所有的设备配置信息,包括CPU型号频率.内存.硬盘型号以及容 ...
- 如何查看电脑的GPU信息
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_33690342/article/ ...
- Linux组管理、用户管理、查看用户信息、usermod、which、切换用户、修改文件具体权限
组管理 提示:创建组/删除组的终端命令都需要通过sudo执行 序号 命令 作用 01 groupadd组名 添加组 02 groupdel组名 删除组 03 cat/etc/group 确认组信息 0 ...
- 利用WMI检测电脑硬件信息,没办法显示cpu的信息
但你要给某些系统或软件加密时,需要了解到服务器的硬件信息时,系统和软件会利用WMI检测硬件信息, 而有时我们会遇到检测不到CPU的型号信息,如图 此时的解决方法: 1.确定“服务”里启动了WMI 2. ...
- windows如何查看电脑开关机记录
如何查看电脑开关机记录 (一)如果你只是想查看一下,从昨天关机到今天开机之间有没有人使用我的计算机,在“开始”菜单的运行”中输入“eventvwr.msc”,或者是按下"开始菜单" ...
- 【电脑常识】如何查看电脑是32位(X86)还是64位(X64),如何知道硬件是否支持64位系统
开始->运行->输入cmd确定->输入systeminfo 回车 待加载完成,就会看到如下信息(不同版本略有差异): 一.如何查看电脑是32位(X86)还是64位(X64) 方法2: ...
- Liunx下查看服务器硬件信息
一.如何查看服务器的CPU 今天安装了9台Linux服务器,型号完全不一样(有DELL. HP和IBM服务器),又懒得去对清单,如何在Linux下cpu的个数和核数呢?另外,nginx的cpu工作模式 ...
- sqlserver检测死锁;杀死锁和进程;查看锁信息
http://blog.sina.com.cn/s/blog_9dcdd2020101nf4v.html sqlserver检测死锁;杀死锁和进程;查看锁信息 ( ::)转载▼ 标签: sql 检测死 ...
随机推荐
- maven常见问题归纳
前言 Maven,发音是[`meivin],"专家"的意思.它是一个非常好的项目管理工具,非常早就进入了我的必备工具行列,可是这次为了把ABPM项目 全然迁移并应用maven,所以 ...
- ASP.NET MVC 验证
- C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
C# 强制关闭当前程序进程(完全Kill掉不留痕迹) /// <summary> /// 运行DOS命令 /// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID ...
- ExpandableListView 箭头靠右
ExpandableListView 默认标示箭头是在左边的,当左边有图片时,不是太好看,想把它放在右边,这么简单的事可我折腾死了,还好给我找到了. 参照了以下链接: expandableListvi ...
- 浅谈C/C++中的static和extern关键字 转
原文:http://developer.51cto.com/art/201104/256820.htm static是C++中常用的修饰符,它被用来控制变量的存贮方式和可见性.extern, &quo ...
- 前端js插件
jquery jquery官方 版本:v 2.1.0v 1.11.0 yquery 暂停更新 版本: v 1.6v 1.5 v 1.4v 1.3 v 1.2v 1.1 v 1.0 jQuery 原型插 ...
- Asp.Net 之 通过调用 WScript.Shell 启动本地 exe 程序时产生“ automation服务器不能创建对象 ”的错误
我们经常需要通过生成 ActiveXObject("WScript.Shell"); 来调用某一exe文件. 设置网页打印的页眉页脚为空: var HKEY_Root,HKEY_P ...
- ASP.NET 之 检测到在集成的托管管道模式下不适用的ASP.NET设置
将ASP.NET程序从IIS6移植到IIS7后,调试运行可能提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP. ...
- C#项目代码规范
C#项目代码规范 前言 小菜就是小菜,几个人搞出来的项目,让公司大牛稍微看了下,最后送出了惨不忍睹四个字.命名各种各样,五花八门,大写英文.小写英文.大写拼音.小写拼音.英文和拼音组合.字母和特殊 ...
- python(3)-内置函数
>>> abs(-1) #绝对值,小数也可以,不能是其它字符 1 >>> all([1,2,3,4,5,6,7]) #如果传入的列表所有元素都为真,则True Tr ...