【C#+Access+WindowsAPI】实现仿360的安全卫士 三:系统检测窗体设计(附源码和资源)
需要源码和PPT请点赞关注收藏后评论区留言私信~~~
其他部分文章链接如下
【C#+Access+WindowsAPI】实现仿360的安全卫士 一:功能展示与系统开发环境简介(附源码和资源
【C#+Access+WindowsAPI】实现仿360的安全卫士 二:主窗体设计讲解(附源码和资源)
【C#+Acces+WindowsAPI】实现仿360的安全卫士 四:设计功能集合窗体讲解(附源码和资源)
【C#+Access+WindowsAPI】实现仿360的安全卫士 五:系统清理、开启重启功能讲解(附源码和资源)
【C#+Access+WindowsAPI】实现仿360的安全卫士 六:实用工具集合讲解(附源码和资源)
一、系统检测窗体概述
通过单击主窗体中的系统检测图片按钮,可以打开系统检测窗体,该窗体主要用来显示计算机硬件以及软件相关的信息 效果如下
二、系统检测窗体实现流程
系统检测窗体实现流程如下
三、设计系统检测窗体
系统检测窗体的设计主要分为两个步骤:分别是设计窗体和添加控件 下面分别介绍
1:设计窗体
窗体的属性值列表如下
2:添加控件
系统检测窗体主要用到了两个控件,分别是TreeView控件和ListView控件,下面分别介绍
1.添加TreeView控件
属性如下
2.添加ListView控件
属性如下
最后设计出的窗体效果如下
四、初始化树菜单
初始化树菜单主要是对系统检测窗体中的菜单进行设置,分三个步骤实现:导入公共类文件,添加必要的dll引用,Frm_SysCheck代码页实现
1:导入公共类文件
系统中一共用到3个公共类文件和一个html网页文件 功能如下
2:添加必要的dll引用
365系统加速器中由于需要获取硬件i西南西 并对注册表进行操作,因此需要添加System.Management.dll和Microsoft.VisualBaisc.dll引用 添加步骤如下
3:Frm_SysCheck代码页实现
定义一个GetInfo方法,用来根据指定节点获取相应的信息,该方法主要用到了Operator类中定义的InsertInfo方法,它用来根据指定的字符串获取其对应的系统或者硬件信息
private void GetInfo(string node)
{Operator oper = new Operator(); //创建公共操作类的对象switch (node) //判断选中的节点名称{case "Windows信息":oper.GetInfo(lvInfo);break;case "Windows用户":oper.InsertInfo("Win32_UserAccount", ref lvInfo, true);break;case "用户组别":oper.InsertInfo("Win32_Group", ref lvInfo, true);break;case "当前进程":oper.InsertInfo("Win32_Process", ref lvInfo, true);break;case "系统服务":oper.InsertInfo("Win32_Service", ref lvInfo, true);break;case "系统驱动":oper.InsertInfo("Win32_SystemDriver", ref lvInfo, true);break;case "中央处理器":oper.InsertInfo("Win32_Processor", ref lvInfo, true);break;case "主板":oper.InsertInfo("Win32_BaseBoard", ref lvInfo, true);break;case "BIOS信息":oper.InsertInfo("Win32_BIOS", ref lvInfo, true);break;case "显卡":oper.InsertInfo("Win32_VideoController", ref lvInfo, true);break;case "音频设备":oper.InsertInfo("Win32_SoundDevice", ref lvInfo, true);break;case "物理内存":oper.InsertInfo("Win32_PhysicalMemory", ref lvInfo, true);break;case "磁盘":oper.InsertInfo("Win32_LogicalDisk", ref lvInfo, true);break;case "网络适配器":oper.InsertInfo("Win32_NetworkAdapter", ref lvInfo, true);break;case "网络协议":oper.InsertInfo("Win32_NetworkProtocol", ref lvInfo, true);break;case "打印与传真":oper.InsertInfo("Win32_Printer", ref lvInfo, true);break;case "键盘":oper.InsertInfo("Win32_Keyboard", ref lvInfo, true);break;case "鼠标":oper.InsertInfo("Win32_PointingDevice", ref lvInfo, true);break;case "串口":oper.InsertInfo("Win32_SerialPort", ref lvInfo, true);break;case "IDE控制器":oper.InsertInfo("Win32_IDEController", ref lvInfo, true);break;case "软驱控制器":oper.InsertInfo("Win32_FloppyController", ref lvInfo, true);break;case "USB控制器":oper.InsertInfo("Win32_USBController", ref lvInfo, true);break;case "SCSI控制器":oper.InsertInfo("Win32_SCSIController", ref lvInfo, true);break;case "PCMCIA卡控制器":oper.InsertInfo("Win32_PCMCIAController", ref lvInfo, true);break;case "1394控制器":oper.InsertInfo("Win32_1394Controller", ref lvInfo, true);break;case "即插即用设备":oper.InsertInfo("Win32_PnPEntity", ref lvInfo, true);break;default:oper.GetInfo(lvInfo); //默认显示Windows信息break;}
}
下面对于触发该窗体的Load事件,编写代码,主要对树菜单进行初始化
private void Frm_SysCheck_Load(object sender, EventArgs e)
{#region 创建TreeNode对象作为父节点TreeNode tn1 = new TreeNode("Windows");TreeNode tn2 = new TreeNode("CPU与主板");TreeNode tn3 = new TreeNode("视频设备");TreeNode tn4 = new TreeNode("音频设备");TreeNode tn5 = new TreeNode("存储设备");TreeNode tn6 = new TreeNode("网络设备");TreeNode tn8 = new TreeNode("总线与接口");TreeNode tn9 = new TreeNode("输入设备");TreeNode tn10 = new TreeNode("打印与传真");#endregion#region Windows父节点的子节点tn1.Nodes.Add("Windows信息");tn1.Nodes.Add("Windows用户");tn1.Nodes.Add("用户组别");tn1.Nodes.Add("当前进程");tn1.Nodes.Add("系统服务");tn1.Nodes.Add("系统驱动");#endregion#region CPU与主板父节点的子节点tn2.Nodes.Add("中央处理器");tn2.Nodes.Add("主板");tn2.Nodes.Add("BIOS信息");#endregion#region 视频设备父节点的子节点tn3.Nodes.Add("显卡");#endregion#region 存储设备父节点的子节点tn5.Nodes.Add("物理内存");tn5.Nodes.Add("磁盘");#endregion#region 网络设备父节点的子节点tn6.Nodes.Add("网络适配器");tn6.Nodes.Add("网络协议");#endregion#region 总线与接口父节点的子节点tn8.Nodes.Add("串口");tn8.Nodes.Add("IDE控制器");tn8.Nodes.Add("软驱控制器");tn8.Nodes.Add("USB控制器");tn8.Nodes.Add("SCSI控制器");tn8.Nodes.Add("PCMCIA卡控制器");tn8.Nodes.Add("1394控制器");tn8.Nodes.Add("即插即用设备");#endregion#region 输入设备父节点的子节点tn9.Nodes.Add("鼠标");tn9.Nodes.Add("键盘");#endregion#region 将创建的父节点添加到树列表中tvItem.Nodes.Add(tn1);tvItem.Nodes.Add(tn10);tvItem.Nodes.Add(tn2);tvItem.Nodes.Add(tn3);tvItem.Nodes.Add(tn4);tvItem.Nodes.Add(tn5);tvItem.Nodes.Add(tn6);tvItem.Nodes.Add(tn8);tvItem.Nodes.Add(tn9);#endregionGetInfo(""); //默认获取Windows信息的相关信息
}
五、根据选择项显示其详细信息
触发树控件tvItem的AfterSelect事件,它实现根据选中的树节点显示其详细信息的功能
private void tvItem_AfterSelect(object sender, TreeViewEventArgs e)
{string strText = tvItem.SelectedNode.Text; //获取选中节点的文本this.Text = "365系统加速器——" + strText; //设置窗体标题lvInfo.Items.Clear(); //清空ListView中的信息GetInfo(strText); //根据选中的树节点显示相应信息
}
创作不易 觉得有帮助请点赞关注收藏~~~
【C#+Access+WindowsAPI】实现仿360的安全卫士 三:系统检测窗体设计(附源码和资源)相关推荐
- 【C#+Access+WindowsAPI】实现仿360的安全卫士 六:实用工具集合讲解(附源码和资源)
需要源码和资源请点赞关注收藏后评论区留言私信~~~ 其他部分文章链接如下 [C#+Access+WindowsAPI]实现仿360的安全卫士 一:功能展示与系统开发环境简介(附源码和资源) [C#+A ...
- 【C#+Access+WindowsAPI】实现仿360的安全卫士 一:功能展示与系统开发环境简介(附源码和资源)
需要源码和资源请点赞关注收藏后评论区留言私信~~~ 其他部分文章链接如下 [C#+Access+WindowsAPI]实现仿360的安全卫士 二:主窗体设计讲解(附源码和资源) [C#+Access+ ...
- 开博第一篇作品-C#winform版《仿360杀毒》页面切换动画效果(内含源码)
C#winform版 <仿360杀毒>页面切换动画效果 昨天跟一个同事聊天,谈到了360杀毒的页面效果不错,我们所做的winform页面都是拖控件还是拖控件,不能吸引客户的注意力,想改成3 ...
- Android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
这一系列博文都是:(android高仿系列)今日头条 --新闻阅读器 (一) 开发中碰到问题之后实现的,觉得可能有的开发者用的到或则希望独立成一个小功能DEMO,所以就放出来这么一个DEMO. 原本觉 ...
- Android 毕业设计高仿抖音(视频类App)(内附源码)
背景 抖音这么火,我就想着要不自己也做一个吧,于是就有了我的自制抖音.喜欢的可以点个star或关注一下,以后会保持维护和优化. 主要效果演示 安装包: 整体设计 由于没有接口获取数据,使用的方式是将图 ...
- 【Android App】实战项目之仿微信的私信和群聊App(附源码和演示视频 超详细必看)
需要全部代码请点赞关注收藏后评论区留言私信~~~ 手机最开始用于通话,后来增加了短信功能,初步满足了人与人之间的沟通需求.然而短信只能发文字,于是出现了能够发图片的彩信,但不管短信还是彩信,资费都太贵 ...
- 【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)
需要全部代码请点赞关注收藏后评论区留言私信~~~ 与传统的影视行业相比,诞生于移动互联网时代的短视频是个全新行业,它制作方便又容易传播,一出现就成为大街小巷的时髦潮流. 各行各业的人们均可通过短视频展 ...
- 基于HTML+CSS+JavaScript仿瓜子二手车官网【学生网页设计作业源码】
- 【cocos creater】6.仿《弓箭传说》- 控制主角移动(附源码)
查看项目所有章节 接着上一章,我们在main场景中创建一个role精灵节点 在资源管理器中,将head图集拖到Sprite属性节点的Atlas属性上,并把head图集中的baioqing_1图片拖到S ...
最新文章
- 人人都是 DBA(V)SQL Server 数据库文件
- 1.17 局部内部类
- window系统无限试用 JAVA IDEA不限版本
- 好班微校云信聊天解读记录
- spring配置详解-初始化销毁方法
- mysql -u 报错_MySQL报错解决!
- 500 OOPS: vsftpd: both local and anonymous access disabled
- Linux系统资源控制
- C++ 基类私有成员会被继承吗
- chrome 离线安装包下载
- switchHost工具的使用
- Android启动优化
- allure报告定制
- STM32 RCC浅析
- 参考文献格式生成器(GB/T 7714-2015)
- tensorflow中axis理解非常重要
- 基于深度学习的三维重建算法综述
- Java进阶之--------集合
- 基于CTP的程序化交易系统开…
- 创业公司感叹养不起程序员:他们的工资有泡沫吗? | 百度宣布开源自主驾驶软件...
热门文章
- MySQL中的limit用法详解
- 数论、关于余数之和的浅解
- “由于网络上有重名,没有连接。请到“控制面板”中的“系统”更改计算机名,然后重试”解决办法
- TextAloud(文本)转换为使用mp3格式
- oracle9i 9.2.0.10,Oracle 9i和10G软件及补丁下载地址
- 使用 netlify 部署你的前端应用
- 使用ul li和不适用ul li的区别
- linux内核调度策略SCHED_OTHER,SCHED_FIFO和SCHED_RR
- MIT透过机器学习技术用胺基酸预测蛋白质结构
- 轩辕剑五的乱码问题解决