用C#设计一个驱动备份的程序代码
2009-08-30 19:10
316 查看
首先,从注册表获取驱动信息:
在 Windows 选择运行,在运行命令行中键入“regedit”,打开注册表编辑器,然后找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/这个目录。在这一级目录下会有多个子目录,每个就是一个驱动,在DriverDesc中描述了驱动的名称,ProviderName中描述了驱动发布厂商信息,在InfPath中描述了inf目录下的信息文档名称,该文件是INI结构;在信息文件内SourceDisksFiles段描述了驱动程序的文件,分别会保存在System32 目录 windows主目录及相应的drivers help spool/drivers/color inf nview 子目录内;获得了这些信息就可以备份驱动了。
那么用c#设计的话必须先解决读取ini文件的问题,虽然有现成的api GetPrivateProfileString WritePrivateProfileString;
设计得Ini文件读取类必须实现枚举段中得键值;因为象这样的ini内容就必须这样读取:
[SourceDisksFiles]
ialmnt5.sys = 1
ialmsbw.sys = 1
ialmkchw.sys = 1
因为sourcedisksfiles的内容是不确定的;那么实现一个这样的方法:
//从Ini文件中,将指定的Section名称中的所有Ident添加到列表中
public void ReadSection(string Section, StringCollection Idents)
{
Byte[] Buffer=new Byte[16384];
//Idents.Clear();
int bufLen=GetPrivateProfileString(Section, null, null, Buffer, Buffer.GetUpperBound(0),
FileName);
//对Section进行解析
GetStringsFromBuffer(Buffer, bufLen, Idents);
}
完整的IniFile类请阅读C#一个Ini操作类
第二步就是访问注册表;
.net 提供了Registry类,访问键值的方法很简单但是很不方便;
所以增加一个扩展类,实现按路径访问,比如说要访问
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/
有了这些基础,可以编写程序了,具体的也不细说,下载源码吧;
不过先声明,代码很烂,想到什么写什么,其他无关的就不提了。
这里可以预览一下程序界面:
在 Windows 选择运行,在运行命令行中键入“regedit”,打开注册表编辑器,然后找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/这个目录。在这一级目录下会有多个子目录,每个就是一个驱动,在DriverDesc中描述了驱动的名称,ProviderName中描述了驱动发布厂商信息,在InfPath中描述了inf目录下的信息文档名称,该文件是INI结构;在信息文件内SourceDisksFiles段描述了驱动程序的文件,分别会保存在System32 目录 windows主目录及相应的drivers help spool/drivers/color inf nview 子目录内;获得了这些信息就可以备份驱动了。
那么用c#设计的话必须先解决读取ini文件的问题,虽然有现成的api GetPrivateProfileString WritePrivateProfileString;
设计得Ini文件读取类必须实现枚举段中得键值;因为象这样的ini内容就必须这样读取:
[SourceDisksFiles]
ialmnt5.sys = 1
ialmsbw.sys = 1
ialmkchw.sys = 1
因为sourcedisksfiles的内容是不确定的;那么实现一个这样的方法:
//从Ini文件中,将指定的Section名称中的所有Ident添加到列表中
public void ReadSection(string Section, StringCollection Idents)
{
Byte[] Buffer=new Byte[16384];
//Idents.Clear();
int bufLen=GetPrivateProfileString(Section, null, null, Buffer, Buffer.GetUpperBound(0),
FileName);
//对Section进行解析
GetStringsFromBuffer(Buffer, bufLen, Idents);
}
完整的IniFile类请阅读C#一个Ini操作类
第二步就是访问注册表;
.net 提供了Registry类,访问键值的方法很简单但是很不方便;
所以增加一个扩展类,实现按路径访问,比如说要访问
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/
有了这些基础,可以编写程序了,具体的也不细说,下载源码吧;
不过先声明,代码很烂,想到什么写什么,其他无关的就不提了。
这里可以预览一下程序界面:
相关文章推荐
- 用C#设计一个驱动备份的程序代码
- 用C#设计一个驱动备份的程序代码
- 用C#设计一个驱动备份的程序代码
- C#代码写的一个计算器的小程序
- C# 一个简单分词程序的思路和代码(七) 后记
- 程序设计中的数学思维函数总结(代码以C#为例)
- 最近设计了一个生成asp代码的程序,同时也可以作为数据库管理查询的软件,有兴趣的朋友可以去下载!
- ASPX验证码生成程序(C#代码一个页面实现)
- C# 一个简单分词程序的思路和代码(三) 键树 插入记录
- Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码
- C#设计的一个向导程序(Wizard)框架--VS2008版 (一)
- C#第1次试验(4)设计一个程序,输入10个数存入数组中,然后实现冒泡排序
- C# 一个简单分词程序的思路和代码(四) 键树 查询记录
- 收了100元辛苦费,写了一个最简单的C#ASP.NET的3层架构例子代码,源码是通过代码生成器生成的【写程序的效率神奇的高】
- 一个统计代码行数的程序C#
- C#第1次试验(3)设计一个程序,输入10个数存入数组中,求最大值、最小值和平均值.
- C# 一个简单分词程序的思路和代码(一)
- C# 一个简单分词程序的思路和代码(六) 源代码 ,测试程序,词库下载地址
- 一个简单的AJAX实现,基于C#的ASP.Net,包括服务器端的程序代码