VB 如何利用VB修改注册表某一特定键值的值?
- 提问者网友:送舟行
- 2021-04-13 09:33
- 五星知识达人网友:七十二街
- 2021-04-13 10:36
- 1楼网友:几近狂妄
- 2021-04-13 13:20
- 2楼网友:深街酒徒
- 2021-04-13 11:40
option explicit '以下声明注册表操作“流”, declare function regcreatekey lib "advapi32.dll" alias "regcreatekeya" (byval hkey as long, byval lpsubkey as string, phkresult as long) as long declare function regopenkey lib "advapi32.dll" alias "regopenkeya" (byval hkey as long, byval lpsubkey as string, phkresult as long) as long declare function regclosekey lib "advapi32.dll" (byval hkey as long) as long 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 ' 'hkey: key handle ,lpsubkey: subkey名称路径,lpvalue: 返回读取的default value,lpcbvalue:传入lpvalue参数的长度,若成功读取了默认值default value,则返回default value字符串的长度(含chr(0))这个和c语言中字符串的处理相似,都是以chr(0)作为结束符。 declare function regqueryvalueex lib "advapi32.dll" alias "regqueryvalueexa" (byval hkey as long, byval lpvaluename as string, byval lpreserved as long, lptype as long, lpdata as any, lpcbdata as long) as long declare function regdeletevalue lib "advapi32.dll" alias "regdeletevaluea" (byval hkey as long, byval lpvaluename as string) as long declare function regdeletekey lib "advapi32.dll" alias "regdeletekeya" (byval hkey as long, byval lpsubkey as string) as long '以下声明6大根键 const hkey_current_user = &h80000001 const hkey_local_machine = &h80000002 const hkey_classes_root = &h80000000 const hkey_users = &h80000003 const hkey_current_config = &h80000005 '定义value类型 enum value1type reg_none = 0 reg_sz = 1 '字符串,一般的 reg_expand_sz = 2 reg_binary = 3 reg_dword = 4 reg_dword_big_endian = 5 reg_multi_sz = 7 end enum enum errorcode error_success = 0& error_more_data = 234& end enum
public function getdefaultvalue(byval hkey as long, byval subkey as string, value as string) as boolean 'to set defualt value dim ret as long, lens as long, s as string ret = regqueryvalueex(hkey, subkey, "", lens) if ret <> 0 and ret <> error_more_data then getdefaultvalue = false exit function end if s = string(lens, chr(0)) ret = regqueryvalueex(hkey, subkey, s, lens) if ret <> 0 then getdefaultvalue = false exit function end if value = left(s, lens - 1) getdefaultvalue = true end function 放在模块里
函数调用格式
ret = regopenkey(hkey_classes_root, ".txt", hkey) ret = getdefaultvalue(hkey, "", s) if ret then if s <> "" then msgbox tmpstr & s else msgbox tmpstr & "failed"