lisp如何输出注册表?
本帖最后由 maghreb 于 2024-1-11 12:21 编辑已知:注册表HKEY_CURRENT_USER\SOFTWARE\7-Zip下有子分项和各种值
提问:如何用LSP输出HKEY_CURRENT_USER\SOFTWARE\7-Zip的注册表所有项和值为D:\7z.reg?
今天得闲小试了一下,如下即可:
(startapp "cmd.exe /C" "reg export HKEY_CURRENT_USER\\SOFTWARE\\7-zip d:\\1.reg /y")
读取注册表(vl-registry-read "注册表地址" "变量数据")
写入注册表(vl-registry-write "注册表地址" "变量" "写入变量数据") maghreb 发表于 2024-1-8 19:06
你说的我知道,我那下面在子项,子项里还有子项,键和键值几百上千个,如何用一句导出,比如调用cmd之类 ...
你可打开AutoCAD安装程序的Visual LISP样板目录下的RegDump.LSP文件,可看到注册表函数的更多例子。在这个文件中,你可以找到一个名为(registry-tree-dump)的有用函数,它对指定注册表项执行递归来搜索到其下级的所有子项和值名。
提示:你可以创建一对Get和Set函数来保存和恢复注册表值,用于控制标准位置和错误捕获。你应该会发现以下两个函数是很有用的:
(setq G$REGROOT "HKEY_CURRENT_USER\\Software\\MyApplication\\")
(defun RegGet (key default / val)
(if (= nil (setq val (vl-registry-read (strcat G$REGROOT key))))
(progn
(regset key default)
(setq val (vl-registry-read (strcat G$REGROOT key)))
)
)
(if val val default)
)
(defun RegSet (key val)
(vl-registry-write (strcat G$REGROOT key) "" val)
)
第十一章 注册表函数
http://bbs.mjtd.com/forum.php?mo ... 9350&fromuid=363233
(出处: 明经CAD社区)
maghreb 发表于 2024-1-8 19:04
我那下面几百上千个键值,如何用一句导出
(vl-registry-descendents "HKEY_CURRENT_USER\\SOFTWARE\\7-Zip") 这样可以获得此路径下所有目录
(vl-registry-descendents "HKEY_CURRENT_USER\\SOFTWARE\\7-Zip" t)这样是获得此路径下所有的子键名称
再用vl-registry-read 读取子键和键值 然后导出 一句话导出是不可能的 怎么也得十几 几十行代码 vl-registry-descendents vl-registry-read 就这两个函数读取 写出用 write-line princ等 至txt文本 后更改后缀 如何用LSP写入注册表?
BUBUBA918 发表于 2024-1-7 06:31
如何用LSP写入注册表?
vl-registry-write hhh454 发表于 2024-1-7 12:19
读取注册表(vl-registry-read "注册表地址" "变量数据")
写入注册表(vl-registry-write "注册表地址" ...
能举个例子吗? 本帖最后由 zhoupeng220 于 2024-1-8 02:19 编辑
回6楼的
(steq path1 “xx\\xx\\xx”)写入的目录下的文件夹xx
(steq path2 “xx\\xx\\xx”)
(vl-registry-write path1 “xxx” x)写入子键xxx及键值x
(vl-registry-write path2 “xxx” x) BUBUBA918 发表于 2024-1-7 20:17
能举个例子吗?
7楼不知道是不是你想知道的。 飞雪神光 发表于 2024-1-6 23:03
vl-registry-descendents vl-registry-read 就这两个函数读取 写出用 write-line princ等 至txt文本 后更改 ...
我那下面几百上千个键值,如何用一句导出 hhh454 发表于 2024-1-7 12:19
读取注册表(vl-registry-read "注册表地址" "变量数据")
写入注册表(vl-registry-write "注册表地址" ...
你说的我知道,我那下面在子项,子项里还有子项,键和键值几百上千个,如何用一句导出,比如调用cmd之类的也行
页:
[1]
2