使用TRegistry类。 sReg:= TRegistry.Create; try sReg.RootKey:=HKEY_CURRENT_USER; //设置主键 if sReg.OpenKey('\Software\XSoft\MySoft',True) then //打开子键,如果不存在就新建 begin sReg.WriteString('User','123'); //写一个字符型键,如果不存在就新建 sReg.WriteString('Code','abc'); //如果要读的话,用ReadString方法 end; sReg.CloseKey; finally sReg.free; end; 别的类型的键的话,可以使用相应的Write和Read方法,如读整形键用:sReg.ReadInteger
var aReg:TRegIniFile; begin aReg := TRegIniFile.Create(''); try aReg.RootKey := HKEY_LOCAL_MACHINE; if aReg.OpenKey('Software',False) then Result :=aReg.ReadString(g_RegPath,Key,'') else Result := ''; finally aReg.Free; end; end;
REG_NONE 是未定义类型。 既然是未定义,那么就不是你的程序定义的,或者是其他软件定义的数据格式,也就是私有的。对你是不透明的。可以按二进制格式来读。不过既然对你是不透明的,即使读了也没什么用。 至于如何往注册表里写REG_NONE ,可能需要使用API. 这是API原型:详见SDK帮助。 LONG RegSetValueEx( HKEY hKey, // handle of key to set value for LPCTSTR lpValueName, // address of value to set DWORD Reserved, // reserved DWORD dwType, // flag for value type CONST BYTE *lpData, // address of value data DWORD cbData // size of value data );
sReg:= TRegistry.Create;
try
sReg.RootKey:=HKEY_CURRENT_USER; //设置主键
if sReg.OpenKey('\Software\XSoft\MySoft',True) then //打开子键,如果不存在就新建
begin
sReg.WriteString('User','123'); //写一个字符型键,如果不存在就新建
sReg.WriteString('Code','abc'); //如果要读的话,用ReadString方法
end;
sReg.CloseKey;
finally
sReg.free;
end;
别的类型的键的话,可以使用相应的Write和Read方法,如读整形键用:sReg.ReadInteger
aReg:TRegIniFile;
begin
aReg := TRegIniFile.Create('');
try
aReg.RootKey := HKEY_LOCAL_MACHINE;
if aReg.OpenKey('Software',False) then
Result :=aReg.ReadString(g_RegPath,Key,'')
else
Result := '';
finally
aReg.Free;
end;
end;
既然是未定义,那么就不是你的程序定义的,或者是其他软件定义的数据格式,也就是私有的。对你是不透明的。可以按二进制格式来读。不过既然对你是不透明的,即使读了也没什么用。
至于如何往注册表里写REG_NONE ,可能需要使用API.
这是API原型:详见SDK帮助。
LONG RegSetValueEx( HKEY hKey, // handle of key to set value for
LPCTSTR lpValueName, // address of value to set
DWORD Reserved, // reserved
DWORD dwType, // flag for value type
CONST BYTE *lpData, // address of value data
DWORD cbData // size of value data
);
我已知该REG_NONE如果按二进制来读取,得到的BUFFER是一个字符串,所以读出来是有用的。
现在的关键是如何写REG_NONE,我指Delphi的方法,TRegistry没有提供WriteHexdata的方法。比如一个文件路径:
C:\Program files\Messenger\msn.exe
请按REG_NONE类型写入到注册表(位置无所谓)
如果必须要用API,请给一个实现过程,谢谢!