
用Visual Basic修改Windows98注册表
发布时间:2006-01-18 00:00:10 来源: 网友评论 0 条
Windows98系统注册表中包含关于系统配置及运行的重要信息。本文以修改KEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run子键分支中的键值信息为例,介绍如何在Visual Basic中,利用Win32 API函数修改注册表。
声明Win32 API函数
因为Visual Basic 6.0本身没有提供对系统注册表中“键” 的创建、打开、关闭、删除等操作的功能函数,所以,首先在程序的开始声明以下Win32 API 函数:
编写功能函数
在上面程序中,StrConv(strData,vbFromUnicode)的作用是:根据系统的默认码将字符串转换成Unicode。
声明Win32 API函数
因为Visual Basic 6.0本身没有提供对系统注册表中“键” 的创建、打开、关闭、删除等操作的功能函数,所以,首先在程序的开始声明以下Win32 API 函数:
| Const REG_SZ=1 Global Const HKEY_LOCAL_MACHINE =&H80000002 Declare Function RegOpenKey Lib“advapi32” Alias “RegOpenKeyA”(ByVal hkey As Long, ByVal lpszSubKey As String,phkResult As Long) As Long ’该函数用于打开系统注册表中已存在的键。 函数的返回值:键打开成功返回0,否则返回非0, phkResult被设置为该键的句柄。 Declare Function RegSetValueEx Lib “advapi32” Alias “RegSetValueExA” (ByVal hkey As Long,ByVal lpszValueName As String,ByVal dwReserved As Long,ByVal fdwType As Long, lpbData As Any,ByVal cbData As Long) As Long ’该函数用于向系统注册表中指定的键添加键名和键值。 函数的返回值: 添加键名、键值成功返回0,否则返回非0。 Declare Function RegCloseKey Lib “advapi32” Alias “RegCloseKey” (ByVal hkey As Long) As Long ’该函数用于关闭系统注册表中打开的键。 函数的返回值:键关闭成功返回0,否则返回非0。 |
编写功能函数
| Function oRegOpenKey (ByVal hkey As Long, ByVal lpszSubKey As String,phkResult As Long) As Boolean Dim lResult As Long On Error GoTo 0 ’关闭错误陷阱 lResult=RegOpenKey(hkey,lpszSubKey,phkResult) If lResult=0 Then oRegOpenKey=True Else oRegOpenKey=False End If End Function Function RegSetStringValue(ByVal hkey As Long,ByVal strValueName As String, ByVal strData As String,Optional ByVal flog) As Boolean Dim lResult As Long On Error GoTo 0 lResult=RegSetValueEx(hkey,strValueName, 0&,REG_SZ,ByVal strData,LenB(StrConv(strData, vbFromUicode))+1) ’StrConv是Visual Basic提供的函数, 返回按指定类型转换的Variant(String)。 ’vbFromUicode是Visual Basic的系统常数。 |
在上面程序中,StrConv(strData,vbFromUnicode)的作用是:根据系统的默认码将字符串转换成Unicode。
| If lResult =0 Then RegSetStringValue=True Else RegSetStringValue=False End If End Function 在Clik事件中编写下列代码 Private sub Commandl_Clik() Dim hkey As Long Dim MyReturn As Long MyReturn=oRegOpenkey(HKEY_LOCAL_MACHINE, “SOFTWARE/Microsoft/Windows/CurrentVersion/Run”,hkey) If hkey=0 Then MsgBox “您要求打开的主键未创建, 或者您的输入有误,请仔细核对后再次运行本程序!” Exit Sub End If MyReturn=RegSetStringValue(hkey, “MyAcess”,“d:/programfiles/office97/ office/mymsaccess.exe”,False) ’如果flag丢失或为True,则该动作将 被记录在日志文件中,并且,如果用户选择 删除已安装的应用程序,该值将被应用程序删除。 If MyReturn Then MsgBox “您的程序已成功添加到 Windows 98的启动中,再次启动Windows时 系统将自动运行您的程序!”,vbExclamation,“特别提示” Else MsgBox “您的这段代码中存在某种错误, 请认真检查!”,vbExclamation,“特别提示” End If RegCloseKey(hkey) End Sub |
推荐阅讯
- 修复被锁定的注册表
- 如何关闭Dr.Watson
- 从零讲起 彻底走出注册表应用的迷雾
- 最高收藏秘籍:注册表修改项目大全
- 不再费时费力 两招快速定位注册表项名
- Windows注册表修改实例完全手册(上)
- 设置系统注册表防止页面文件泄露信息
- Windows系列操作系统注册表的组成与分析
- 注册表中常用软件信息查找和备份全攻略
- 用注册表给应用程序加口令
阅读排行
- 1.注册表知识:HKEY_LOCAL_MACHINE根键详解
- 2.浏览网页注册表被修改之迷及解决办法
- 3.初识注册表
- 4.收放自如 注册表禁止使用和恢复禁用
- 5.雕虫小技 教你吓走想要动你电脑的人
- 6.对注册表进行编辑的三种途径
- 7.编程解决注册表问题所需的函数详解
- 8.网上冲浪要小心 不让别人动你的注册表
- 9.Windows系列操作系统注册表的组成与分析
- 10.解除封锁注册表被禁用的几种解决办法
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
