找回密码
 加入
搜索
查看: 10839|回复: 30

求获取注册表时间的方法【悬赏100元,送完为止】

 火.. [复制链接]
发表于 2008-6-8 10:25:58 | 显示全部楼层 |阅读模式
具体来说就是获取注册表中
某个子键的创建时间和最近写入时间
就好像每个文件都有创建和修改时间一样
如果au3无法获取,如何通过其他方法实现?
请大侠们给点提示!

[ 本帖最后由 aliske 于 2008-6-15 17:59 编辑 ]

评分

参与人数 1金钱 -10 收起 理由
afan -10

查看全部评分

 楼主| 发表于 2008-6-9 11:47:06 | 显示全部楼层
UP一下
“使用RegEnumKeyEx()函数枚举注册表目录,
函数的最后一个参数是PFILETIME lpftLastWriteTime,记录了当前项的最后修改时间”
发表于 2008-6-9 18:30:27 | 显示全部楼层
lpftLastWriteTime这个是哪个函数的参数??
RegEnumKeyEx()???
2楼兄台用是哪个版本的autoit
发表于 2008-6-9 18:33:52 | 显示全部楼层
昏..api的..
进度未够,看高手出招了.
 楼主| 发表于 2008-6-9 21:18:16 | 显示全部楼层
急啊。。
发表于 2008-6-10 18:58:50 | 显示全部楼层
等以后哪位大虾出个这个函数吧...
我也曾搜索过,也没见谁出过这种例子.

评分

参与人数 1金钱 +3 收起 理由
aliske + 3

查看全部评分

发表于 2008-6-10 19:04:44 | 显示全部楼层
 楼主| 发表于 2008-6-10 21:51:13 | 显示全部楼层
将注册表编辑器打开
手动导出某个子键的信息
选择保存为txt格式
该文本中可以看到该子键的最近写入日期,如下:

项名称:             HKEY_LOCAL_MACHINE\SOFTWARE\360Safe
类别名:         <无类别>
最近写入时间:    2008-6-9 - 上午 10:36

项名称:             HKEY_LOCAL_MACHINE\SOFTWARE\360Safe\Coop
类别名:         <无类别>
最近写入时间:    2008-6-9 - 上午 10:36
值  0
  名称:            PrePartner
  类型:            REG_SZ
  数据:            h_home_Installedh_home

这种办法能否用au3获得文本中的最近写入时间值?
 楼主| 发表于 2008-6-11 12:47:34 | 显示全部楼层
这个脚本该如何写呢?
发表于 2008-6-13 11:07:10 | 显示全部楼层
8楼的想实现,用windows自动的regedit编辑器不行的
建议用Registry Workshop软件

评分

参与人数 1金钱 +5 收起 理由
aliske + 5

查看全部评分

发表于 2008-6-13 17:39:35 | 显示全部楼层
这段代码我重写了不少于20遍,真他妈难!
#Include <Array.au3>
#include <Date.au3>
const $HKEY_LOCAL_MACHINE = 0x80000002;winreg.h
dim $hKey=$HKEY_LOCAL_MACHINE
$lpName=DllStructGetPtr(DllStructCreate('char'))
$lpcName=DllStructGetPtr(DllStructCreate('short'))
$lpClass=DllStructGetPtr(DllStructCreate('char'))
$lpcClass=DllStructGetPtr(DllStructCreate('short'))

$time=DllStructCreate('char')
$lpftLastWriteTime=DllStructGetPtr($time)

for $dwIndex= 0 to 5
$tt=dllcall('Advapi32.dll','long','RegEnumKeyEx','ptr',$hKey,'int',$dwIndex,'str',$lpName,'dword*',$lpcName,'byte',0,'str',$lpClass,'dword*',$lpcClass,'int',$lpftLastWriteTime)
_ArrayDisplay ($tt)
msgbox(0,'',_Date_Time_FileTimeToStr ($Time))
next

这是极限了,再写就吐血了

[ 本帖最后由 kakinkgb 于 2008-6-13 17:49 编辑 ]

评分

参与人数 2金钱 +15 收起 理由
pusofalse + 10 辛苦!
aliske + 5

查看全部评分

发表于 2008-6-14 15:45:50 | 显示全部楼层
原帖由 kakinkgb 于 2008-6-13 17:39 发表
这段代码我重写了不少于20遍,真他妈难!
[au3]#Include
#include
const $HKEY_LOCAL_MACHINE = 0x80000002;winreg.h
dim $hKey=$HKEY_LOCAL_MACHINE
$lpName=DllStructGetPtr(DllStructCreate('char'))
$lpcN ...



没看明白这些...
[1]|0x80000002

[3]|HARDWARE

[4]|8

[8]|18820944
发表于 2008-6-14 16:06:05 | 显示全部楼层
1指的是枚举HKEY_LOCAL_MACHINE 下的子键,因为HKEY_LOCAL_MACHINE = 0x80000002
3枚举出的子键
4枚举出的子键的字数,这个没用,sam是3,HARDWARE自然是8,
8枚举出的子键时间,好像需要转换才能看懂,我写的转换代码可能有问题,不过实在是不会了

评分

参与人数 1金钱 +2 收起 理由
木纳 + 2 精彩.. 向你学习

查看全部评分

 楼主| 发表于 2008-6-14 20:01:09 | 显示全部楼层
HKEY_LOCAL_MACHINE = 0x80000002
其他的子键名相关代码如何获得呢?
发表于 2008-6-14 22:53:05 | 显示全部楼层
给钱才告诉你

评分

参与人数 1金钱 +5 收起 理由
aliske + 5

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2025-1-12 08:39 , Processed in 0.111229 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表