找回密码
 加入
搜索
查看: 2736|回复: 9

[效率算法] 如何读取注册表指定项下的所有项。(已解决)

  [复制链接]
发表于 2011-8-4 23:06:07 | 显示全部楼层 |阅读模式
本帖最后由 nmgwddj 于 2011-8-5 19:45 编辑
RegEnumVal ( "键名", 序数 )
以前总这样写了
for $i = 1 to 100
      msgbox('test', RegEnumVal(HKEY_CURRENT_USER\Software, $i))
next

不知道有没有什么万无一失的办法,一旦下边的项超过了100呢。。设置数值太大了,反而速度下降了。
不知道有没有什么办法,或者给些思路,自己研究。感谢。
 楼主| 发表于 2011-8-4 23:12:28 | 显示全部楼层
抱歉,刚才把函数写错,已经更正。
发表于 2011-8-5 06:48:36 | 显示全部楼层
没有,用api枚举注册表一样慢
发表于 2011-8-5 11:29:41 | 显示全部楼层
$i = 0
While 1  ;遍历services所有子键名
        $i+=1
        $var1 = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services",$i);子键名
        If @error <> 0 then ExitLoop
WEnd
发表于 2011-8-5 11:30:55 | 显示全部楼层
这是我的原帖,和这个可能有关,希望能解决你的问题,http://www.autoitx.com/thread-11291-1-1.html
发表于 2011-8-5 15:17:04 | 显示全部楼层
回复 4# qqgghh1
这样行吗?大概
If not($var) then ExitLoop
更好点
发表于 2011-8-5 16:50:27 | 显示全部楼层
效率和严谨性应该差不多。我看示例函数中也是用的If @error <> 0 then ExitLoop
 楼主| 发表于 2011-8-5 19:45:32 | 显示全部楼层
回复 4# qqgghh1


    非常感谢,问题解决,看来思路真的很重要。
发表于 2011-8-5 19:48:07 | 显示全部楼层
怎么解决的捏?
发表于 2011-8-5 20:04:49 | 显示全部楼层
应该是少了If @error <> 0 Then ExitLoop
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-21 05:50 , Processed in 0.082298 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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