小朋友丶 发表于 2021-2-23 13:32

易语言写注册项问题



写注册项 (#本地机器, “SYSTEM\WPA\d1\”, “1”)

这段代码调试输出返回值是“真”,提示成功,但我去注册表里看是没有添加成功。
如果改成#现行用户就可以创建成功。
而且我注册表的管理权限已经更改过,还是不好用。


本人新手小白,请大佬详细讲解一下怎么处理这种情况。

wangyujie96 发表于 2021-2-23 13:56

#本地机器 、 #现行用户 等几种第一个参数对应注册表的根目录:HKEY_LOCAL_MACHINE 、 HKEY_CURRENT_USER

对了,易语言只能生成32位应用程序,在64位系统上,32位程序的部分注册表路径会被隐式重定向到 HKEY_LOCAL_MACHINE\Software\WOW6432Node,你去这个路径下看看?

小朋友丶 发表于 2021-2-23 14:17

wangyujie96 发表于 2021-2-23 13:56
#本地机器 、 #现行用户 等几种第一个参数对应注册表的根目录:HKEY_LOCAL_MACHINE 、 HKEY_CURRENT_USER
...

路径我没有详细的写出,我只是比喻一下。

我之前的解决办法是用易语言写批处理,然后运行批处理,是好用的,但是最近更新成WIN10 20H2版本也是不好用了,所以我想找个解决办法。

不管用什么办法,只要能解决更改注册表就行。

dice1412 发表于 2021-2-23 14:32

是不是易语言要管理员权限运行的原因?

揰掵佲 发表于 2021-2-23 14:35

wangyujie96 发表于 2021-2-23 13:56
#本地机器 、 #现行用户 等几种第一个参数对应注册表的根目录:HKEY_LOCAL_MACHINE 、 HKEY_CURRENT_USER
...

易语言默认命令写注册项确实会这样的哦。
可以考虑一下某些模块中,是否有64位注册表的操作

wangyujie96 发表于 2021-2-23 14:35

小朋友丶 发表于 2021-2-23 14:17
路径我没有详细的写出,我只是比喻一下。

我之前的解决办法是用易语言写批处理,然后运行批处理,是好 ...

32位程序在64位系统上,对 #本地机器 目录下的读写会被重定向到 HKEY_LOCAL_MACHINE\Software\WOW6432Node 里去,你试试在程序里读而不是用regedit看
用regedit看得去 HKEY_LOCAL_MACHINE\Software\WOW6432Node

小朋友丶 发表于 2021-2-23 20:41

wangyujie96 发表于 2021-2-23 14:35
32位程序在64位系统上,对 #本地机器 目录下的读写会被重定向到 HKEY_LOCAL_MACHINE\Software\WOW6432Nod ...

我在HKEY_LOCAL_MACHINE\Software\WOW6432Node下看也没有呀,我手动添加是好用的。

能不能把易语言静态编译的程序转换成64位的呢?
页: [1]
查看完整版本: 易语言写注册项问题