lsp加载时读取注册表值
本帖最后由 刘大叔 于 2024-3-27 00:56 编辑【提问内容】
想实现如下操作:
lsp A加载时,先读取电脑注册表中固定位置的数据值,读取到了,正常加载,读取不到,弹出对话框:“lsp A没有正确加载”。
然后,这个lsp A会连同其他lsp程序打包成fas,或lsp A被置入其他lsp程序的开头,来判断是否加载。
要求基本就上上面的,需要lsp A的源码,,注册表的位置,读取的值还没想好,一起帮我找个位置呗~
XJ6019的源码见二楼。
运行后发现不行,认真看了代码,应该是读取不到,停止运行,于是修改代码如下:
;(defun C:NM (/ selasxk zhucebiao)
(setq zhucebiao "HKEY_CURRENT_USER\\SOFTWARE\\XXXSOFT\\Config");;定义注册表路径,XXXXSOFT\\Config为自定义注册表具体位置
(if (null (vl-registry-read zhucebiao "Key" )) ;;如果这个注册表位置读取不到
(progn
(vl-exit-with-error (alert "\n文件lisp A没有正确加载"));;则程序停止运行,并弹出对话框
;(setq selasxk (vl-registry-write zhucebiao "Key" "text01")) ;就将"text01"这个测试字符串写入注册表,自己确定这里是否启用(这句是XJ6019大哥写的,我没有删除)
)
(progn
;(setq selasxk (vl-registry-read zhucebiao "Key" ));如果注册表存在这个key,就直接读取(这里已被注释,不需要运行)
;(vl-exit-with-error(alert "\n指定函数加载失败!请重新加载!")) ;;已被注释,不需要运行(读取不到停止运行,读到了就继续运行)
)
)
(princ selasxk);验证结果
;)
;;本人系lisp婴儿,特别感谢论坛各路大哥们的帮助!
;;每次求助均不白嫖,明经币奉上!
感谢XJ6019的帮助,已设置最佳答案!:handshake
本帖最后由 xj6019 于 2024-3-24 12:25 编辑
测试一下看看
vl-registry-read vl-registry-write 这种应该不难实现,但也容易被破除限制 xj6019 发表于 2024-3-24 12:22
测试一下看看
点赞!
虽有点儿瑕疵,我修改了一点点,可以达到我的预想,明经币奉上!有空的话就再帮我看看呗。:lol
页:
[1]