ASR注册表清理程序设计思路
1.需要实现的功能
1.1 从HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi下取出当前使用的ASR服务列表。
1.2 清除不被使用的服务及相关键值。
1) 从木鸟提供的服务列表中去除正在使用的ASR服务,并导入数组存放需要清除的服务。
2) 从HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services下删除不需要的服务,同时删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root下的相关内容。
1.3 清除非ASR服务及相关内容。
使用服务的ImagePath来判断相关服务是否正在使用,含有Bird则没有使用,否则认为正在使用。
2. 实现方法
2.1 初步决定使用MFC中的CRegKey类库来访问注册表。
2.2 提供参数供用户选择是直接清除,还是生成批处理清除。
2.3 要提供详细的日志信息,记录所有清除的内容。
2.4 用一个函数实现删除一个服务的所有相关操作。
2.5 SDK: GetWindowsDirectory()
2.6 程序的使用方法:
由于程序使用了MFC,因此需要MFC的运行库支持(晕啊,本来用VC就是不想要运行库的)。运行库文件如下:
MSVCRTD.DLL
MFC42D.DLL
MSVCP60D.DLL
将上述DLL文件放到%windir%\system32目录下即可。
源代码编译环境: Visual C++ 6.0。
木鸟封装工具ASR Tools配套注册表清理工具 - 版本 1.0
作者:Climbing (xclimbing@gmail.com)
日期:2006年5月13日
版权所有 (C) Climbing 2006.
本程序开放源代码并免费提供使用,但由本程序造成的一切损失,作者概不负责!
ASRClean [/ASRList:ListFile] [/OtherList:ListFile] [/Delete:ListFile]
[/DeleteDriverFile] [/DriverPath:BirdDriverPath]
[/GenCmd:CmdFile] [/Log:LogFile] [/NoLog] [/NoRegBackup]
[/Quiet] [/?][/h][/help]
参数说明(所有参数不区分大小写):
/ASRList:ListFile
由木鸟提供的加入注册表的ASR设备服务列表文件,默认:ASRList.txt
本程序会检测系统中正在使用的ASR设备服务,并据此将ASRList中没有
使用的其它服务进行删除。
/OtherList:ListFile
除ASR设备外,其它加入注册表的设备服务列表文件,默认:OtherList.txt
本程序会根据服务的ImagePath中是否含有下面的DriverPath来判断该服务是否
正在使用,如果含有,则认为没有使用,将进行删除操作。
/Delete:ListFile
由用户直接提供的需要删除的服务列表文件,本程序将根据该文件直接进行服务
的清除,从而忽略上面两个参数。
/DeleteDriverFile
删除木鸟的ASR Tools所添加的驱动文件,驱动文件路径由下面的参数提供。
注1:原则上不推荐用户删除这些文件,否则有可能造成系统不能启动。
注2:本程序1.0版没有实现直接从程序中删除驱动的操作,只能通过批处理实现。
/DriverPath:BirdDriverPath
木鸟的ASR Tools所添加的驱动文件所在的目录,默认:BIRD。
注意:该目录应该在%windir%\System32目录下。
/GenCmd:CmdFile
生成所有清除操作的批处理文件,默认文件名:ASRClean.cmd。
使用该参数后,本程序将不进行任何清除操作,而是生成对应的批处理文件。
推荐用户使用该参数!本程序默认直接清除,不生成批处理文件。
/Log:LogFile
生成日志文件,默认日志文件名:ASRClean.log。日志文件记录了程序所做的所
有清除操作,这是本程序的默认参数。
/NoLog
不生成日志文件。不推荐用户使用!
/NoRegBackup
不备份要清除的注册表内容。本程序默认备份要清除的注册表的内容,推荐备份!
/Quiet
让本程序静默运行,不产生任何屏幕输出。不推荐用户使用!
/? 或 /h 或 /help
本使用帮助。
命令示例:
1. 程序不加任何参数直接运行,相当于命令行:
ASRClean /ASRList:ASRList.txt /OtherList:OtherList.txt /Log:ASRClean.log
2. 从ASRList.txt及OtherList.txt中输入添加的服务列表,删除驱动文件,将所有
清除操作生成ASRClean.Cmd,不产生用户显示及日志文件。命令行如下:
ASRClean /GenCmd /DeleteDriverFile /NoLog /Quiet
3. 从asr.txt及other.txt中输入添加的服务列表,并生成MyClean.cmd批处理文件,
同时记录程序日志到ASRClean.log中。命令行如下:
ASRClean /ASRList:asr.txt /OtherList:other.txt /GenCmd:MyClean.cmd /log
评论