本帖最后由 刘大叔 于 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的帮助,已设置最佳答案!
|