【发布时间】:2016-02-23 13:04:46
【问题描述】:
我正在尝试将 reg_binary 作为字符串从注册表项中获取。
这是我的功能
function ReadBinString(key: string; AttrName: string): string;
var
ReadStr: TRegistry;
begin
// Result := '';
ReadStr := TRegistry.Create(KEY_WRITE OR KEY_WOW64_64KEY);
ReadStr.RootKey := HKEY_LOCAL_MACHINE;
if ReadStr.OpenKey(key, true) then
begin
Result := ReadStr.GetDataAsString(AttrName);
end;
ReadStr.CloseKey;
ReadStr.Free;
end;
这是我的注册表项导出:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ZES\ACINFO]
"iamthere"=dword:00000001
"ArrayOrder"=hex:4d,79,45,78,63,6c,75,64,65
问题是,函数返回空字符串
我什至尝试以管理员身份运行以确保它不是权限。
有什么帮助吗?
【问题讨论】:
-
不要使用
KEY_WRITE。删除它。使用OpenKeyReadOnly。停止使用GetDataAsString。改为使用GetData,然后使用TEncoding解码ANSI 字节数组 -
为了记录,你也应该养成调试的习惯。