VB如何把字符串加入注册表

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:19:18
我把目录下的一个文件名,包括路径,赋予fname,现在想把fname的值加进注册表的一个键值中,下面是我的程序,但好像用的函数不正确,请教一下,将如何加入?
Private Sub Command1_Click()
Dim WSH

Set WSH = CreateObject("WSCRIPT.SHELL") '击活WScript.Shell对象

WSH.Regwrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Wallpaper", RegCreateKeyEx(fname) '修改注册表,没有则自动增加(此键值为墙纸图片位置)"

WSH.Regwrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\WallpaperStyle", 2 '此键值为强制拉伸效果,0为局中1为平铺

WSH.Regwrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\NoDispBackgroundPage", 0, "REG_DWORD" '0为显示属性桌面选项卡,1为不显示

WSH.Regwrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop\NoChangingWallPaper", 1, "REG_DWOR

wsh不允许修改Policies数据
如果需要修改,需要采用注册表函数或者导入注册表文件

Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Const REG_DWORD = 4
Private Const HKEY_CURRENT_USER = &H80000001

Function regSetDWValue(RootKey As Long, SubKey As String, ValueName As String, Data As Long) As Long
Dim hKey As Long
regSetSZValue = RegO