tk1223108078 发表于 2014-12-12 14:32:19

如何获取硬盘的安装时间这个信息

如题,代码实现

英胜数据恢复 发表于 2014-12-13 10:26:10

读取固件。。。。。。。。。。。。

tk1223108078 发表于 2014-12-13 12:25:32

胜惟一 发表于 2014-12-13 10:26
读取固件。。。。。。。。。。。。

哦哦,多谢指点,我试试

英胜数据恢复 发表于 2014-12-13 14:27:08

tk1223108078 发表于 2014-12-13 12:25
哦哦,多谢指点,我试试

tk1223108078 发表于 2014-12-14 11:11:09

胜惟一 发表于 2014-12-13 14:27


还想再问下,如何读取固件信息?第一次遇到这个问题,各个搜索都搜过了没啥有用的信息

英胜数据恢复 发表于 2014-12-15 09:06:14

tk1223108078 发表于 2014-12-14 11:11
还想再问下,如何读取固件信息?第一次遇到这个问题,各个搜索都搜过了没啥有用的信息

买工具,
论坛里这么多广告 没看到???
mrt
udma
dfl

tk1223108078 发表于 2014-12-15 11:11:03

胜惟一 发表于 2014-12-15 09:06
买工具,
论坛里这么多广告 没看到???
mrt


.............买工具是不可能的,要的就是自己获取,买个工具算咋回事

tk1223108078 发表于 2014-12-17 14:11:19

本人查找了半天也没有找到系统是如何获取磁盘插入时间的,但是找到了折中方案。希望能够有人帮忙找到更好的方法。
首先我信息的获取全部来自注册表,系统中的显示出来的磁盘驱动器,如图1所示图1。
在系统中是存储在注册表HKLM中的SYSTEM中,如图2所示
图2。
图2中只有一个磁盘,键为0的就代表该磁盘,键值表示的是磁盘具体信息存储的注册表位置。

tk1223108078 发表于 2014-12-17 14:18:18

下面我们根据图2所得的值,转到相应的注册表位置,如图3所示

图3
我们可以看到右边有很多的属性,我们可以从中得到很多属性,例如我想要的友好名、安装位置等,但是我们想要知道的首次安装时间并没有,我们还需要再次根据这些信息进行跳转获取。
我们可以看到右边有一个Driver属性,该属性的值也是一个注册表的路径,我们跳转到该路径下如图4所示

图4
其实这是驱动类的信息存储的位置,可以发现里面也没有我们需要的安装时间,但是我们可以根据该注册表的键值的最后写入时间来得到首次安装时间。可惜的是,如果有人手的修改了键值就会影响我们读取时间,并且获取的安装时间和系统提供的安装时间也差了几秒。

tk1223108078 发表于 2014-12-17 14:28:07

本人写了一个小程序,用来获取需要的信息,最后要注意的是,我们使用RegQueryInfo获取的注册表键值最后写入时间是UTC时间,我们需要转换为本地时间,本人在程序中并没有转换。MFC做的窗口,Win7 64位+VS2008通过。
源码:
程序:
运行结果对比

页: [1] 2
查看完整版本: 如何获取硬盘的安装时间这个信息