我的软件在 HKCU\Software\mysoftware 中存储了一些从未出现过问题的值。但是,我现在还在 HKCU\Software\mysoftware\Licenses 中存储了一些值 - 即现有数据的子目录。但是,24 小时后,这些值就会消失。
我登录我的软件以检查它没有删除密钥并且没有日志条目,这是完全可以预料的,因为该软件甚至没有运行。有人建议使用可以跟踪注册表事件的进程查看器(来自 Microsoft):但是,它放弃了工作(事件太多,即使我只看 HKCU\Software\mysoftware 注册表事件)所以我仍然没有找到什么是删除这些键!
我用阿瓦斯特!其他人建议的防病毒可能是罪魁祸首。实际密钥的格式为 REG_SZ,带有“[keyname]=[base64string]”。没什么花哨的,大约150个字符。软件关闭几个小时后,我可以使用注册表编辑器查看这些值。但过了一段时间,他们走了!我很少重启。
那么还有什么可以删除密钥?
更新
这是 Delphi 6 代码:
procedure XXX;
var
registry : TRegistry;
code : string;
begin
try
registry := TRegistry.Create;
if registry.OpenKey(REGISTRY_ROOT, true) then begin
code := [...a base64 string, around 150 chars on average...];
registry.WriteString(simname, code);
end;
finally
FreeAndNil(registry);
end;
end;