发表回复 
请教各位大虾一个注册表遍历的逻辑问题
2012-11-26, 20 : 46
请教各位大虾一个注册表遍历的逻辑问题
[i=s] 本帖最后由 billy036 于 2012-11-26 23:56 编辑 [/i]

从帮助文档得知,注册表循环的遍历顺序是以逆序获取 (自下而上), 这种方式可以使RegDelete不会扰乱循环自身,但是我现在想通过TreeView来显示注册表的键,不过LOOP注册表默认特性,导致显示的顺序也是倒叙显示,看起来很不爽,有什么好的办法可以变通一​下,改变TreeView里面显示注册表的顺序呢?(自上而下)
源码如下:
代码: (全选)
Gui, Add, TreeView, w300 h500
AddSubRegToTree("HKEY_LOCAL_MACHINE", "SYSTEM\CurrentControlSet\Services")
Gui,Show
return
GuiClose:
ExitApp
;遍历注册表生成树状菜单
AddSubRegToTree(RootKey, SubKey, ParentItemID = 0)
{
Loop, %RootKey%, %SubKey%, 2
{
  SubKey = %A_LoopRegSubKey%\%A_LoopRegName%
  AddSubRegToTree(RootKey, SubKey, TV_Add(A_LoopRegName, ParentItemID))
}
return
}
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-11-26, 22 : 02
 
把值先保存在数组里然后再逆向读出来?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-11-26, 22 : 37
 
代码: (全选)
TV_Add(A_LoopRegName, ParentItemID,"First")
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-11-26, 22 : 40
 
这段代码是你自己写的吗,有不错的编程基础啊
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-11-26, 23 : 06
 
從來沒去看過這一段,剛研究完看完試過

改用TV_Add(A_LoopRegName, ParentItemID,"+Sort")

但還是慢Nepter一歩
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-11-26, 23 : 49
 
谢谢楼上几位,还是怪自己看帮助看漏眼了,刚开始想用数组,后来发现逻辑有点复杂,特别是要区分父键和子键比较麻烦,没想到帮助里直接有了,感谢大家的帮助!
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-11-26, 23 : 52
 
4# nepter
这段代码是根据帮助改写的,呵呵,纯粹投机
帮助源码:
代码: (全选)
AddSubFoldersToTree(Folder, ParentItemID = 0)
{
    ; 此函数添加指定文件夹中所有的子文件夹到 TreeView.
    ; 它还可以调用自己来递归获取到任意深度的内嵌文件夹.
    Loop %Folder%\*.*, 2  ; 获取所有文件夹的子文件夹.
        AddSubFoldersToTree(A_LoopFileFullPath, TV_Add(A_LoopFileName, ParentItemID, "Icon4"))
}
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合