主题:--- API怎样读取“注册表”? ---
琅拿度
[专家分:2820] 发布于 2011-05-10 16:33:00
网上查到了设置值的代码
#Define hkey_local_machine -2147483646
#Define reg_sz 1
Declare integer RegOpenKey in Win32API;
integer nKey,string @cSubKey,integer @nHandle
Declare integer RegSetValueEx in Win32API;
integer nKey, string cValueName, integer nReserved,;
integer nType, string cBuffer, integer nBufferSize
Declare integer RegCloseKey in Win32API integer nKey
lnhandle=0
= regopenkey(hkey_local_machine,"Software\Microsoft\Windows\CurrentVersion\Run",@lnhandle)
= regsetvalueex(lnhandle,"jqc",0,reg_sz,"路径+程序名",len("路径+程序名"))
= regclosekey(lnhandle)
Return
也查到了一些读的代码,但读取并不成功,我知道vfp9有一个类,非不得已不想利用类
沙发
moz [专家分:37620] 发布于 2011-05-11 03:19:00
可以利用脚本对象,但也有极少数机器上面会禁用脚本的.
具体格式请根据VFP的要求进行修改.
[quote]
WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegDelete 从注册表中删除指定的键或值。
WshShell.RegRead 从注册表中返回指定的键或值。
WshShell.RegWrite 在注册表中设置指定的键或值。
WshShell.RegDelete
RegDelete 从注册表中删除名为 strName 的键或值。
语法
WshShell.RegDelete strName
参数
strName
如果 strName 以反斜杠 () 结束,则该方法删除键而不是值。
strName 参数必须以下列之一的根键名开始:
短根键名 长根键名
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
示例
Set
WshShell.RegDelete "HKCUScriptEngineValue" '' Delete value "Value"
WshShell.RegDelete "HKCUScriptEngineKey" '' Delete key "Key"
请参阅
WshShell.RegRead 方法、WshShell.RegWrite 方法
WshShell.RegRead
RegRead 方法返回名为 strName 的注册表键或值。
语法
WshShell.RegRead(strName) = strValue
参数
strName
如果 strName 以反斜杠 () 结束,则该方法返回键,而不是值。
strName 参数必须以下列根键名开始。
Short Long
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
注释
RegRead 方法仅支持 REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY 和 REG_MULTI_SZ 数据类型。若注册表有其他数据类型,RegRead 返回 DISP_E_TYPEMISMATCH。
示例
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegRead("HKCUScriptEngineVal") '' Read from value "Val"
WshShell.RegRead("HKCUScriptEngineKey") '' Read from key "Key"
请参阅
WshShell.RegDelete 方法、WshShell.RegWrite 方法
WshShell.RegWrite
RegWrite 方法设置名为 strName 的注册表键或值。
语法
WshShell.RegWrite strName, anyValue, [strType]
参数
strName
若 strName 以一个反斜杠 () 结束,则该方法设置键,而不是值。
strName 参数必须以下列根键名开头。
Short Long
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG
anyValue
当 strType 为 REG_SZ 或 REG_EXPAND_SZ 时,RegWrite 方法自动将 anyValue 转换为字符串。若 strType 为 REG_DWORD,则 anyValue 被转换为整数。若 strType 为 REG_BINARY,则 anyValue 必须是一个整数。
strType
RegWrite 方法支持 strType 为 REG_SZ、REG_EXPAND_SZ、REG_DWORD 和 REG_BINARY。若其他的数据类型被作为 strType 传递,RegWrite 返回 E_INVALIDARG。
示例
Set WshShell = Wscript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCUScriptEngineValue", "Some string value"
WshShell.RegWrite "HKCUScriptEngineKey", 1 "REG_DWORD"[/quote]