在 Windows 注册表中, key 可以创建为 volatile 的 - 这意味着 volatile key 在 PC 重新启动后将无法继续存在。重新启动后,在注册表中将找不到此类 key 的痕迹。 这是由 API RegCreateKeyEx 的选项 REG_OPTION_VOLATILE 指定的。
我需要验证某个 Windows 注册表项是否易失(使用 REG_OPTION_VOLATILE 创建)。
例如, key 可能位于 (HKLM\Software\MyCompany\MyProgram\KeyToBeChecked) 下。
似乎没有直接的 WIN API 允许进行此类检查。
有谁知道如何检查吗?
最佳答案
一种方法是尝试使用 RegCreateKeyEx
在正在验证的 key 下创建一个非 volatile 子项。如果 key 确实是 volatile 的,那么它将失败并出现错误ERROR_CHILD_MUST_BE_VOLATILE
。尝试在 volatile 键中设置值时,甚至 ShSetValue
也会返回 ERROR_CHILD_MUST_BE_VOLATILE
。
关于registry - 有没有办法验证 Windows 注册表项是否易失(REG_OPTION_VOLATILE)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432977/