yxp 发表于 2013-5-20 02:37:27

[求助]求注册表二进制的写入方法

本帖最后由 yxp 于 2013-5-20 02:43 编辑

按照高飞大侠的指点,用 ws 对象可以读出二进制,返回一个10进制的表。
(vlax-invoke wsh 'RegRead RegPath)
但是当使用 'RegWrite 参数时,却无法写入二进制格式,该值会自动变为字符型。
(vlax-invoke wsh 'RegWrite RegPath Value)
是不是还需要其他参数?

yxp 发表于 2013-5-22 04:51:56

本帖最后由 yxp 于 2013-5-22 04:59 编辑

在高手如云的明经,虽然得不到解决,但也要自我总结一下。

用 Lisp 函数 (startapp "regedit" regfile) ,不认文件路径里的空格,没法处理弹出窗口的确定键。

用 VL 函数 (vl-registry-read RegPath) 只能读出 '(3) ,写入就别提了,比 Lisp 进步了些。

用 ET 函数 (acet-reg-get path key) 能读出 "REG_BINARY" 字符,键值读不出来,
          (acet-reg-put path key value) 可以写入 dword ,对 binary 仍然没法,比 VL 好点。

用 WS 对象(vlax-invoke wsh 'RegRead RegPath) ,可以读出二进制binary ,返回结果为表。
       但用 'RedWrite 方法不能写入二进制,这已经是最好的结果了。

即使强大的 DosLib 也没有提供 BINARY 写入的函数,看来真的可以放弃了。


补充一下,有一个10年前的软件,只能使用数次,用的是注册表二进制加密,想用lisp程序改变该值.....竟不得法

namezg 发表于 2013-5-22 07:23:03

regedit /s 无需确认.   路径有空格用"注册表文件路径"

namezg 发表于 2013-5-22 07:35:30

本帖最后由 namezg 于 2013-5-22 22:08 编辑

(vlax-invoke wsh 'RegWrite RegPath Value "键值类型"
注:regWrite方法的键值类型常用的有:REG_BINARY(新建或写入二进制值)、REG_DWORD(新建或写入DWORD值)、REG_SZ(新建或写入字符
串值)、REG_EXPAND_SZ(新建或写入可扩展的字符串)。

highflybir 发表于 2013-5-23 00:08:10

yxp 发表于 2013-5-22 04:51 static/image/common/back.gif
在高手如云的明经,虽然得不到解决,但也要自我总结一下。

用 Lisp 函数 (startapp "regedit" regfile)...

http://bbs.mjtd.com/thread-101573-1-1.html
在上面的帖子中,我已经提出了解决办法,看看能否成功?

moshouhot 发表于 2024-6-30 17:30:43

本帖最后由 moshouhot 于 2024-6-30 18:15 编辑

mark一下 看看
页: [1]
查看完整版本: [求助]求注册表二进制的写入方法