winapi – 从Haskell访问64位注册表
发布时间:2020-12-14 03:54:20 所属栏目:Windows 来源:网络整理
导读:我在 Haskell中有一个 Windows程序(因此是32位).我想访问注册表的64位视图. Windows API表示在KEY_WOW64_64KEY(0x200)中使用RegOpenKeyEx和OR. (我将 standard Haskell bindings用于Haskell平台附带的Windows API.) 在我的程序中,这最终是: import qualifie
我在
Haskell中有一个
Windows程序(因此是32位).我想访问注册表的64位视图. Windows API表示在KEY_WOW64_64KEY(0x200)中使用RegOpenKeyEx和OR. (我将
standard Haskell bindings用于Haskell平台附带的Windows API.)
在我的程序中,这最终是: import qualified System.Win32.Registry as W32 import qualified System.Win32.Types as W32 ... let kEY_WOW64_64KEY = 0x200 -- has no binding in the library currently let regSam = kEY_WOW64_64KEY .|. ... other flags bracket (W32.regOpenKeyEx rootCode kname regSam) W32.regCloseKey $k -> ... 但是,我得到异常RegOpenKeyEx:无效参数(系统找不到指定的文件.) 检查Process Monitor中的调用显示以下输出: API调用以某种方式最终丢弃了标志并进入Wow6432Node子树.还说明了,尽管事件包含了RegOpenKey,我认为它实际上调用了RegOpenKeyEx,如事件的堆栈(以及绑定的错误消息)所示. 有什么建议? 谢谢! 解决方法
alternate registry view flags是:
KEY_WOW64_64KEY 0x0100 KEY_WOW64_32KEY 0x0200 但你写道: let kEY_WOW64_64KEY = 0x200 所以你实际上是在寻求32位视图.你需要写: let kEY_WOW64_64KEY = 0x100 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- tcl/tk sample.dll cannot be unloaded under a
- WPF将TextBlock绑定到Window的标题
- wpf – 如何在XAML中绘制单独的圆圈?
- 如何将CLI应用程序作为Windows服务运行?
- windows-7 – 用于从多个文件夹中复制名为“dat”
- windows-server-2008-r2 – windws server 2008
- windows-services – 使用Inno Setup在Windows(V
- Windows – Visual Studio 2010 – 如何减少其内
- wcf – Azure AppFabric和Windows Server AppFab
- 使用基于Windows的RADIUS(NPS)的SuperMicro IPMI
热点阅读