回 帖 发 新 帖 刷新版面

主题:---  API怎样读取“注册表”? ---

网上查到了设置值的代码

#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有一个类,非不得已不想利用类


回复列表 (共2个回复)

沙发

可以利用脚本对象,但也有极少数机器上面会禁用脚本的.
具体格式请根据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]

板凳

没有 API 的吗? 这样还是使用类算了

我来回复

您尚未登录,请登录后再回复。点此登录或注册