使用 Lua 读取 Windows 注册表

我正在使用 Lua for Windows。 Windows 8.1 Lua 5.1

我已经添加了 Steve Donovan 的 winapi 模块。 我想要能够从 Windows 注册表中读取/写入数据。 我使用 winapi 模块时得到了不一致的结果。

使用 winapi.open_reg_key,我可以读取 [[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers]],这是 winapi 示例文件中的内容。 如果我去掉 "\Servers",有时可以正常读取,有时会返回 null 并显示"操作成功完成"。

我真的想读取我自己的键值 [[HKEY_LOCAL_MACHINE\SOFTWARE\LastName\MyStuff]]。 如果我重命名 "MyStuff" 键并使用winapi.create_reg_key,它会失败,但在我将键名还原后,open_reg_key 能够正常工作。 我真的很困惑。

有没有其他二进制文件可以用来访问 Windows 注册表?

点赞
用户2898064
用户2898064

Lua for Windows 截止到 2014 年 9 月 29 日,只支持 32 位。使用 32 位程序向注册表写入数据并不能如我所愿。具体来说,当使用 32 位应用程序写入 Windows 8.1 64 位注册表对于 HKEY_LOCAL_MACHINE时,写入会被重定向到 HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node。问题并不在于 Lua 或 Lua winapi,而是在于我的理解上面。

2014-09-30 01:10:56