注册表-获取上次更改值(非键)的时间以及键创建日期

时间:2018-07-24 12:14:04

标签: c++ windows winapi registry

我想最后一次获取注册表项中的名称/值。有可能吗?

我还想获取创建键的日期(未修改)。

我了解RegQueryInfoKey()函数,但看起来它仅在键级别有效,并且仅给出修改日期,而不给出创建日期。

我看了看API,找不到其他可以满足我要求的东西。

1 个答案:

答案 0 :(得分:6)

在两种情况下答案均否。我们无法查询值的最后修改时间,也无法查询键的创建时间。数据不存在。键对象(即CM_KEY_BODY)引用键控制块(即CM_KEY_CONTROL_BLOCK或KCB)。 KCB具有指向配置单元(即HHIVE)的指针和配置单元中包含关键节点(即CM_KEY_NODE)的单元格的索引,该节点具有LastWriteTime时间戳,但是没有与文件对象相关的其他时间戳(即CreationTimeLastAccessTimeChangeTime)。 (KCB将该时间戳记为KcbLastWriteTime进行缓存,但仍与关键节点保持同步。)值也存储在配置单元中,在这种情况下,它包含值节点(即CM_KEY_VALUE),其中具有名称,类型,数据和标志,但没有时间戳。