我有一个用Haskell编写的Windows程序(因此是32位),我想访问64位视图中的注册表。 Windows API要求使用
在我的程序中,这变成了:
然而,我遇到了异常
API调用不知何故会删除标志并进入
有什么建议吗?
谢谢!
RegOpenKeyEx
并在其中加入KEY_WOW64_64KEY
(0x200
)。 (我正在使用随Haskell平台提供的标准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: invalid argument (The system cannot find the file specified.)
在过程监视器中检查调用时,显示以下输出:![enter image description here](https://istack.dev59.com/IjaRm.webp)
Wow6432Node
子树。同时,虽然事件暗示RegOpenKey
,但我认为它实际上正在调用RegOpenKeyEx
,如事件的堆栈(以及绑定的错误消息)所示。有什么建议吗?
谢谢!