搜索
猜你喜欢
查看: 1418|回复: 4

Revo的C#编程

[复制链接]
发表于 2006-7-6 17:35:00 | 显示全部楼层 |阅读模式
<span style="FONT-SIZE: 9pt;">//修改了Add_regkey函数<br/>using System;<br/>using System.Collections.Generic;<br/>using System.Text;<br/>using Microsoft.Win32;<br/><br/>namespace WinXPReg<br/>{<br/>public class Open_regkey //注册表操作专用类<br/>{<br/>RegistryKey key;<br/><br/>public Open_regkey(string root, string subkey)<br/>{<br/>switch (root)<br/>{<br/>case "Root":<br/>key = Registry.ClassesRoot.OpenSubKey(subkey);<br/>break;<br/>case "CurrentConfig":<br/>key = Registry.CurrentConfig.OpenSubKey(subkey);<br/>break;<br/>case "CurrentUser":<br/>key = Registry.CurrentUser.OpenSubKey(subkey, true);<br/>break;<br/>case "MACHINE":<br/>key = Registry.LocalMachine.OpenSubKey(subkey, true);<br/>break;<br/>case "Users":<br/>key = Registry.Users.OpenSubKey(subkey, true);<br/>break;<br/>}<br/>}<br/><br/>public string Read_regkey(string subkey)//读取注册表键值;<br/>{<br/>try<br/>{<br/>return key.GetValue(subkey).ToString();<br/>}<br/>catch<br/>{<br/><br/>return "0";<br/>}<br/>}<br/><br/>public bool Del_regsubkey(string subkey)//删除注册表子键<br/>{<br/>try<br/>{<br/>key.DeleteSubKey(subkey, false);<br/>return true;<br/>}<br/>catch<br/>{<br/>return false;<br/>}<br/>}<br/><br/>public bool Del_regkeyvalue(string subkey)//删除注册表数值<br/>{<br/>try<br/>{<br/>key.DeleteValue(subkey);<br/>return true;<br/>}<br/>catch <br/>{<br/>return false; <br/>}<br/><br/>}<br/><br/>public bool Add_regkey(string subkey,string keyname,RegistryValueKind kind)//添加/和设置注册表键值<br/>{<br/>try<br/>{<br/>key.SetValue(subkey,keyname,RegistryValueKind kind);<br/>return true;<br/>}<br/>catch<br/>{<br/><br/>return false;<br/>}<br/>}<br/><br/>public bool Creat_regkey(string subkey)//创建子键<br/>{<br/>try<br/>{<br/>key.CreateSubKey(subkey);<br/>return true;<br/>}<br/>catch<br/>{<br/><br/>return false;<br/>}<br/>}<br/><br/><br/>}<br/>}<br/><br/></span>
 楼主| 发表于 2006-7-6 17:36:00 | 显示全部楼层
<span style="FONT-SIZE: 9pt;">1.Open_regkey(string root, string subkey):该类的构造函数,例子如下:<br/><br/>Open_regkey reg =new Open_regkey("CurrentUser", "\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced");<br/><br/>2.Read_regkey(string subkey)//读取注册表键值<br/>reg.Read_regkey("DesktopProcess");//这就是一些优化软件中为Explorer创建独立进程的选项<br/><br/>3.Del_regsubkey(string subkey)//删除注册表子键<br/>reg.Del_regsubkey("Explorer");<br/><br/>4.Del_regkeyvalue(string subkey)//删除注册表数值<br/>reg.Del_regkeyvalue("DesktopProcess")<br/><br/>5.Add_regkey(string subkey,string keyname,RegistryValueKind kind)//第三个参数是要写入的注册类型,入DWORD类型的<br/>reg.Add_regkey("Explorer","DesktopProcess",regeistryValueKind.DWORD);<br/><br/>6.Creat_regkey(string subkey)//创建子键<br/>reg.Creat_regkey("Explorer")</span> <br/>
 楼主| 发表于 2006-7-6 17:36:00 | 显示全部楼层
<span style="FONT-SIZE: 9pt;"><font size="2">先说一下,由于WMI的功能比较强大,大家可以看MSDN里面的介绍</font><br/><br/><font size="3">public class Get_SystemInfo<br/>{<br/>public Get_SystemInfo()<br/>{<br/>}<br/><br/>public void Get_CPUInfo(TreeView TV)<br/>{<br/>SelectQuery query = new SelectQuery("Select * From Win32_Processor");<br/>ManagementObjectSearcher Searcher = new ManagementObjectSearcher(query);<br/><br/>foreach (ManagementBaseObject mbo in Searcher.Get())<br/>{<br/>TV.Nodes[0].Nodes.Add("中央处理器名称: " + mbo["Name"]);<br/>TV.Nodes[0].Nodes.Add("二级缓存大小: " + mbo["L2CacheSize"] + "K");<br/>TV.Nodes[0].Nodes.Add("运行状态: " + mbo["Status"]);<br/>TV.Nodes[0].Nodes.Add("中央处理器速度 " + mbo["Currentclockspeed"]);<br/>TV.Nodes[0].Nodes.Add("中央处理器ID: " + mbo["rocessorID"]);<br/>TV.Nodes[0].Nodes.Add("地址宽度: " + mbo["AddressWidth"]);<br/>TV.Nodes[0].Nodes.Add("版本: " + mbo["Version"]);<br/>TV.Nodes[0].Nodes.Add("电压: " + mbo["VoltageCaps"]);<br/>}<br/>}<br/><br/><br/>public void Get_Mermory(TreeView TV)<br/>{<br/>ManagementClass mc = new ManagementClass("Win32_LogicalMemoryConfiguration");<br/>ManagementObjectCollection moc = mc.GetInstances();<br/>foreach (ManagementObject mo in moc)<br/>{<br/>TV.Nodes[1].Nodes.Add("物理内存总数: " + mo["TotalPhysicalMemory"] + "KB");<br/>TV.Nodes[1].Nodes.Add("虚拟内存总数: " + mo["TotalVirtualMemory"] + "KB");<br/>TV.Nodes[1].Nodes.Add("页面文件总数: " + mo["TotalPageFileSpace"] + "KB");<br/>TV.Nodes[1].Nodes.Add("可用的虚拟内存: " + mo["AvailableVirtualMemory"] + "KB");<br/>}<br/>}<br/><br/>public void Get_Disk(TreeView TV)<br/>{<br/>SelectQuery query = new SelectQuery("Select * From Win32_LogicalDisk");<br/>ManagementObjectSearcher Searcher = new ManagementObjectSearcher(query);<br/>foreach (ManagementObject disk in Searcher.Get())<br/>{<br/>TV.Nodes[2].Nodes.Add(@"硬盘: " + "[" + disk["VolumeName"] + "]" + disk["Name"] + "\\");<br/>TV.Nodes[2].Nodes.Add("文件系统: " + disk["FileSystem"]);<br/>TV.Nodes[2].Nodes.Add("大小: " + disk["Size"] + "字节");<br/>TV.Nodes[2].Nodes.Add("剩余空间: " + disk["FreeSpace"] + "字节");<br/>}<br/>}<br/><br/>public void Get_OSInfo(TreeView TV)<br/>{<br/>SelectQuery query = new SelectQuery("Select * From Win32_OperatingSystem");<br/>ManagementObjectSearcher Searcher = new ManagementObjectSearcher(query);<br/>foreach (ManagementObject OS in Searcher.Get())<br/>{<br/>TV.Nodes[0].Nodes.Add("注册名: " + OS["RegisteredUser"]);<br/>TV.Nodes[0].Nodes.Add("注册厂商: " + OS["Organization"]);<br/>TV.Nodes[0].Nodes.Add("Build: " + OS["BuildNumber"]);<br/>TV.Nodes[0].Nodes.Add("当前用户名: " + OS["CSName"]);<br/>TV.Nodes[0].Nodes.Add("当前版本: " + OS["CSDVersion"]);<br/>TV.Nodes[0].Nodes.Add("系统语言: " + OS["OSLanguage"]);<br/>TV.Nodes[0].Nodes.Add("系统盘: " + OS["SystemDrive"]);<br/>TV.Nodes[0].Nodes.Add("系统路径: " + OS["SystemDirectory"]);<br/>TV.Nodes[0].Nodes.Add("Windows路径: " + OS["WindowsDirectory"]);<br/>TV.Nodes[0].Nodes.Add("最后登录时间: " + OS["LastBootUpTime"]);<br/>TV.Nodes[0].Nodes.Add("当前时间区域: " + OS["CurrentTimeZone"]);<br/>}<br/>}<br/>}</font><br/>补充一下:代码我没有优化,大家可以在查询语句中指定要查询对象,就不用全部都获取了<br/></span>
 楼主| 发表于 2006-7-6 17:37:00 | 显示全部楼层
<span style="FONT-SIZE: 9pt;">忘了说了,一定要引用using System.Management才行<br/>点项目-添加引用-System.Management啊</span> <br/><br/>
发表于 2006-7-6 19:36:00 | 显示全部楼层
不错的说
您需要登录后才可以回帖 登录 | 注册

本版积分规则

客服电话

0730-230 9876

工作时间 全天 8:00-17:30

微信公众号

APP客户端

Copyright © 2016-2017 WWW.XYPUB.COM All Rights Reserved. Discuz!X3.4 @技术支持:NS TECH 粤ICP备16098181号-2

快速回复 返回顶部 返回列表