- A+
CAD里面如何使用lsp读取注册表了,现在电脑系统有分32位和64位,根据不同软件的安装,注册表也不一样,32位系统只有一个32位的注册表,也意味着只支持32位软件,不支持64位软件。但是64位系统是支持32位软件的,所有说64位系统有两个注册表,如果安装包是64位软件,那直接写入默认的注册表里面,和32位系统一样。但是64位系统安装32位软件,注册表是写在32位注册表里面的。
32位系统32位软件统默认注册表路径:HKEY_LOCAL_MACHINE\\SOFTWARE
64位系统64位软件统默认注册表路径:HKEY_LOCAL_MACHINE\\SOFTWARE
64位系统32位软件统默认注册表路径:HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node
自己的软件是多少位的自己应该知道了。使用(vl-registry-read "主键表项""表项下面的字符值")读取
完整读取32/64位注册表代码:
;读取注册表,安装包内安装的时候创建安装路径注册表
(or HUOncn1:Find_File_cnc
(defun HUOncn1:Find_File_cnc (file)
(setq HUOncn1:cnc
(cond
( HUOncn1:cnc
)
;_ 默认32位系统注册表 HKEY_CURRENT_USER
; ((vl-registry-read
; "HKEY_CURRENT_USER\\SOFTWARE\\HUO_CAD_CNC"
; "huoji_cad_cnc"
;))
;64位系统检测64位注册表的位置/32位系统检测32位注册表
((vl-registry-read
"HKEY_LOCAL_MACHINE\\SOFTWARE\\HUO_CAD_CNC"
"huoji_cad_cnc"
))
;64位系统32位软件注册表的位置/64位系统检测32软件位注册表
((vl-registry-read
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\HUO_CAD_CNC"
"huoji_cad_cnc"
))
)
)
(cond
((findfile file)) ; 检测支持路径
(HUOncn1:cnc (findfile (strcat HUOncn1:cnc file)))
(file)
)
)
)
复制
调用:
(setq STT(HUOncn1:Find_File_cnc "01.txt"));文件和路径注册表必须是存在的,否则返回空值
(princ STT)
创建注册表:(vl-registry-write "主键表项" "表项名称" "键值");没有名称写入缺省值
删除注册表:(vl-registry-delete "主键表项" "表项名称");没有指定名称,删除主键下面全部,成功返回T
读取注册表键的子键或值名称的列表
(vl-registry-descendents "主键表项" "表项名称" )
以上函数的参数均 为字符串