注册表“忘记”值

时间:2012-10-22 17:07:48

标签: delphi windows-7 registry antivirus

我的软件在HKCU \ Software \ mysoftware中存储了一些从未出现问题的值。但是,我现在还在HKCU \ Software \ mysoftware \ Licenses中存储了一些值 - 即现有数据的子目录。然而,24小时后,这些价值就会消失。

我将日志记录在我的软件中以检查它是否没有删除密钥,并且没有日志条目,这是因为软件甚至没有运行所以非常期待。有人建议使用可以跟踪注册表事件的进程查看器(来自Microsoft):然而,这放弃了工作(太多事件,即使我只是在看HKCU \ Software \ mysoftware注册表事件)所以我仍然没有找到更接近找到 正在删除这些密钥!

我使用Avast!其他人建议的反病毒可能是罪魁祸首。实际的键的形式为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;

1 个答案:

答案 0 :(得分:0)

仍然没有找到解决方案;然而,我能想到的(在其他地方建议的)是将病毒应用程序限制在沙盒中的反病毒,尽管没有这样的通知。