VB程序系统注册表访问错误

VB程序系统注册表访问错误,第1张

很高兴你能回答,你的问题肯定是WIN7注册表上没有WINXP的控件才会出现问题。要强制的话,那就你别管它,按回车或按确定,如果出现是否载入窗体的对话框,一定要按是才能装入,不然难找,不过有点麻烦,风险较大,你可以在笔记本电脑装WINXP,不会出现这问题。

vb修改注册表可调用WSH实现。

在VB中,注册表的读写,可以用自身的SaveSetting、GetSetting函数,但它们读写注册表的位置有限;也可以使用API函数来实现注册表任意位置的读写,但使用起来又比较麻烦。其实,利用微软提供的Windows Script Host对象来 *** 作注册表简单且方便得多。

要在程序中使用该对象,先要通过“工程\引用”菜单项,把“Windows Script Host Object Modle”一项引用到工程中。如果没有,说明没有安装。可通过下面的方法安装:我的电脑→控制面板→添加/删除程序→安装WINDOWS→附件→Windows scripting host→确定。然后创建注册表 *** 作对象变量WSH,代码为:Set WSH = CreateObject("WScript.Shell")。这样,就可以读写注册表了,其方法、格式和功能描述如下:

1、增加键值:WSH.regWrite "注册表完整路径\键值名",键值,"键值类型"

注:regWrite方法的键值类型常用的有:REG_BINARY(新建或写入二进制值)、REG_DWORD(新建或写入DWORD值)、REG_SZ(新建或写入字符串值)。

2、获取键值:Ret=WSH.RegRead("注册表完整路径\键值名")

注:RegRead方法的返回赋给变量Ret。

3、删除键值:WSH.RegDelete "注册表完整路径\键值名"

注:RegDelete方法删除一个不存在的键值时要出错,防错方法参见以下代码。

4、d出消息:WSH.Popup "消息内容" 注:Popup方法和MsgBox的功能差不多,但比MsgBox的功能弱。下面看看注册表 *** 作的实例:

创建注册表 *** 作变量

Dim WSH

Set WSH = CreateObject("WScript.Shell") 禁用注册表编辑器

WSH.regWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\

DisableRegistryTools", 1, "REG_DWORD" '

注:如果写入的值1改为0,可解除对注册表编辑器的禁用。查看注册表编辑器是否可用

ret = WSH.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\

DisableRegistryTools") If ret = 1 Then WSH.Popup "注册表编辑器被禁用"

Else WSH.Popup "可以使用注册表编辑器"

End If 让程序自动运行

WSH.regWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\" + MyName, MyName, "REG_SZ" '

注:MyName是自动运行程序的文件名(含完整路径)

可以看出,微软提供的这个对象对注册表的 *** 作功能并不弱,著名的“I Love You”病毒,就是利用该对象 *** 作注册表使自己附身在Windows中。除此之外,还可以用该对象来获取系统的一些殊文件夹和环境参数,如:WSH.SpecialFolders("Desktop")可返回桌面文件夹名称;又如:For Each Info In WSH.Environment("Process"): List1.AddItem Info: Next三行代码可取得系统的环境参数。程序代码在Win98+Vb6环境下调试通过。

VB自带有一个函数用来读取与写入注册表的。分别是:

读取,[Default]这里是如果没有,则建立默认值

GetSetting(AppName

As

String,

Section

As

String,

Key

As

String,

[Default])

As

String

写入

SaveSetting(AppName

As

String,

Section

As

String,

Key

As

String,

Setting

As

String)

它会把注册表写到:HKEY_CURRENT_USER\Software\VB

and

VBA

Program

Settings\你的程序名(函数中的AppName)\子夹(函数中的Section)\键值(函数中的Key)\


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6401031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存