Delphi中如果对注册表中的REG_NONE类型进行读写操作?

yeah 2003-10-14 07:43:16
请简要写一下读写的程序,谢谢。分不够再加喽。。。。
...全文
236 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeah 2003-10-16
  • 打赏
  • 举报
回复
顶一下,请高手来解答......
yeah 2003-10-16
  • 打赏
  • 举报
回复
关注的也给点。。。呵呵。。
yeah 2003-10-16
  • 打赏
  • 举报
回复
自己搞定了,给分.....
dickeybird888 2003-10-16
  • 打赏
  • 举报
回复
来我也来顶一下把#要下班了明天在来看!
yeah 2003-10-16
  • 打赏
  • 举报
回复
flyinwuhan(超越)快来啊?给个API解决的例子?谢谢啦。。。。。。。。
yuejun 2003-10-15
  • 打赏
  • 举报
回复
关注
yeah 2003-10-14
  • 打赏
  • 举报
回复
晕~2、3、4楼都很热情,谢谢。。。可是,题都没看清就回答。。。。

感谢flyinwuhan(超越)的解答。
我已知该REG_NONE如果按二进制来读取,得到的BUFFER是一个字符串,所以读出来是有用的。
现在的关键是如何写REG_NONE,我指Delphi的方法,TRegistry没有提供WriteHexdata的方法。比如一个文件路径:
C:\Program files\Messenger\msn.exe
请按REG_NONE类型写入到注册表(位置无所谓)
如果必须要用API,请给一个实现过程,谢谢!
flyinwuhan 2003-10-14
  • 打赏
  • 举报
回复
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
);
CHINAIMP 2003-10-14
  • 打赏
  • 举报
回复
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;
IORILI 2003-10-14
  • 打赏
  • 举报
回复
赞同楼上
chenzhuo 2003-10-14
  • 打赏
  • 举报
回复
使用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

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧