注册 登录
编程论坛 VFP论坛

请教:如何更改注册表值

laibinhua 发布于 2024-11-04 10:09, 223 次点击
请教:如何更改注册表值
我想更改[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\TEST3.0]下的
"Contact"="TEST3.0 Support Department"   改成  "Contact"="测试4.0 Support Department"
5 回复
#2
yanling482024-11-04 12:24
在运行窗口输入“regedit”打开注册表编辑器,找到相应的键值修改就行了。
#3
sych2024-11-04 12:34
DECLARE Integer RegOpenKey IN Win32API Integer nHKey, String @cSubKey, Integer @nResult
DECLARE Integer RegSetValueEx IN Win32API Integer hKey, String lpszValueName, Integer dwReserved,;
    Integer fdwType, String lpbData, Integer cbData
DECLARE Integer RegCloseKey IN Win32API  Integer nHKey
nresult=0
nmykey=-2147483646  && HKEY_LOCAL_MACHINE
cmysubkey="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\TEST3.0"
if regopenkey(nmykey,@cmysubkey,@nresult)=0
    cmyvaluename = "Contact"
    cmyvalue="测试4.0 Support Department"
    =RegSetValueEx(nresult,cmyvaluename,0,1,cmyvalue,LEN(cmyvalue))
    RegCloseKey(nresult)
endif
#4
laibinhua2024-11-04 13:16
回复 3楼 sych
你好,谢谢回复,按你的方法没有改过注册值,不知什么原因
加了条输出显示   返回值是5
    lma1=RegSetValueEx(nresult,cmyvaluename,0,1,cmyvalue,LEN(cmyvalue))
    WAIT WINDOW lma1

[此贴子已经被作者于2024-11-4 13:26编辑过]

#5
sych2024-11-04 13:46
查看GetLastError值
#6
csyx2024-11-05 14:58
以下是引用laibinhua在2024-11-4 13:16:12的发言:

加了条输出显示   返回值是5
    lma1=RegSetValueEx(nresult,cmyvaluename,0,1,cmyvalue,LEN(cmyvalue))
    WAIT WINDOW lma1

对应 5 的错误类型是 ERROR_ACCESS_DENIED,通常是权限不足
按照 msdn 的说法,用 RegSetValueEx 来设置注册表值,要使用 RegOpenKeyEx 并指定 KEY_SET_VALUE 来打开
1