读取注册表键值的问题。

dengbangyao888 2010-08-22 07:37:49

我想通过获取某个游戏的文件路径来读它写的注册表值。

已知注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\CS78\F1 已知键值:Loader (REG_SZ型)


怎么用纯API来实现啊?用Delphi自带的单元类,生成的太大了。
...全文
116 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Frank.WU 2010-08-22
  • 打赏
  • 举报
回复
多了个声明变量 FAccess: Cardinal; 无甚用,请去之。。。
Frank.WU 2010-08-22
  • 打赏
  • 举报
回复
{
codeby sail2000
test in delphi2010 only
}
var
FAccess: Cardinal;
Key: HKEY;
dwType: DWORD;
dwLen: DWORD;
Buf: array of Char;
begin
if RegOpenKeyEx(HKEY_LOCAL_MACHINE, PChar('SOFTWARE\CS78\F1'), 0,
KEY_ALL_ACCESS, Key) = 0 then
begin
if RegQueryValueEx(Key, 'Loader', nil, @dwType, nil, @dwLen)
= ERROR_SUCCESS then
begin
if (dwType = REG_SZ) and (dwLen > 0) then
begin
SetLength(Buf, dwLen);
RegQueryValueEx(Key, 'Loader', nil, @dwType, @Buf[0],
@dwLen);
MessageBox(0,PChar(Buf),'',0);
end;
end;
RegCloseKey(Key);
end;
end;
dengbangyao888 2010-08-22
  • 打赏
  • 举报
回复
哦,。 试了了,不行啊。不知道怎么搞的。
gyk120 2010-08-22
  • 打赏
  • 举报
回复
RegQueryValueEx第五个参数需要用到buffer吧?你定义一个数组array,然后用指针指向它试试,也是@buffer这种形式
dengbangyao888 2010-08-22
  • 打赏
  • 举报
回复
function RegReadBinary(const RootKey: HKEY; const SubKey, ValueName: string; Data: PChar; out Len: integer): Boolean;
var
Key: HKEY;
T: DWORD;
begin
Result := False;
RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_ALL_ACCESS, Key);
if RegQueryValueEx(Key, PChar(ValueName), nil, @T, nil, @Len) = 0 then
Result := true;
RegCloseKey(Key);
end;

var
s : string;
i : integer;
begin
if RegReadBinary(HKEY_LOCAL_MACHINE,'SOFTWARE\SNDA\DN','Loader',@s,i) = true then
MessageBox(0,PChar(s),'',0);
end.
gyk120 2010-08-22
  • 打赏
  • 举报
回复
汗,把你代码贴出来看看……
dengbangyao888 2010-08-22
  • 打赏
  • 举报
回复
不要偷个懒啊 我也是用RegQueryValueEx读,总是出错
---------------------------
Error
---------------------------
Runtime error 216 at 00402EF8
---------------------------
确定
---------------------------
汗,好心人帮一下,我看看错在哪里。。。写个完整的给我撒
gyk120 2010-08-22
  • 打赏
  • 举报
回复
纯API可以用regopenkey和regqueryvaluekey读取
例如
RegOpenKey(HKEY_LOCAL_MACHINE,‘Software/CS78\F1‘,reg1);
RegQueryValueEx(reg1,,,,,)//偷个懒不写完了,楼主可以自行参考msdn
fenshm 2010-08-22
  • 打赏
  • 举报
回复
占位SF先~!

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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