2014-09-29 65 views
2

我正在使用Lua for Windows。 Windows 8.1 Lua 5.1阅读与lua的Windows注册表

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

我可以阅读[[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers]]使用winapi.open_reg_key;这是在winapi的示例文件中。 如果我删除“\服务器”,有时它工作,有时它会返回空和“操作成功完成”。

我真的想在[[HKEY_LOCAL_MACHINE\SOFTWARE\LastName\MyStuff]]上读我自己的密钥。 如果我重命名“MyStuff”键,然后使用winapi.create_reg_key,它会失败,但是当我将键重新命名时,open_reg_key可以工作。 我真的很茫然。

是否有一些其他的二进制我可以用来访问Windows注册表?

+0

我发现我的问题的一部分。由于我运行的是32位版本的Lua和64位版本的Windows,因此Winapi模块正在被重定向到注册表的Wow6432Node部分。 – FireyMerlin 2014-09-29 23:45:16

+0

把它写成答案并接受它。在接受它之前,您可能需要等一会儿。 – 2014-09-29 23:51:22

+0

是说注册表重定向在你的程序中是一个问题,或者仅仅是在你理解它的偶然行为时? – 2014-09-30 00:54:42

回答

3

截至2014年9月29日,Windows的Lua为32位。用32位程序写入注册表不能正常工作。特别是,当使用32位应用程序写入Windows 8.1的64位注册表HKEY_LOCAL_MACHINE时,写入重定向到HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node。问题不在于Lua和Lua winapi。问题出在我的理解上。

+0

你能扩展你的误解吗?这将有助于使您的答案有用。 – Schollii 2014-10-01 03:31:58

+0

当使用32位应用程序写入HKEY_LOCAL_MACHINE的Windows 8.1 64位注册表时,写入被重定向到HKEY_CURRENT_USER \ Software \ Classes \ VirtualStore \ MACHINE \ SOFTWARE \ Wow6432Node。 – FireyMerlin 2014-10-02 00:15:14