RegOpenKeyEx 找不到注册表项
RegOpenKeyEx can't find registry key
我的程序应该枚举已安装的OPOS设备。它们列在注册表中,所以我使用这样的RegOpenKeyEx
:
LONG lResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE, _T("SOFTWARE\OLEforRetail\ServiceOPOS\PosPrinter"), 0, KEY_READ , &key );
它在我的计算机上工作正常,但在另一台机器(Windows 7 sp1 32位)上表现得非常奇怪。
我有两个几乎相同的测试项目(都是 mfc 对话框应用程序,主要区别在于一个是使用 Visual Studio 2005 创建的,另一个是在 2010 年创建的)。在其中一个项目中,上面的代码工作正常,在另一个项目中RegOpenKeyEx
返回ERROR_FILE_NOT_FOUND
。此外,该密钥无法使用 regedit.exe 找到。
这里到底发生了什么?
此外,该密钥无法使用 regedit.exe 找到。
好吧,您需要确保以正确的位访问注册表。在 64 位操作系统上,"regedit.exe"将打开 64 位视图,而不是 32 位视图。您需要使用 Windowssyswow64regedit.exe
打开 32 位视图。
不能同时打开 32 位和 64 位 regedit.exe。
对于您的程序,您需要检查它是 32 位还是 64 位。您还需要检查您是否获得了权限(检查链接器中的 UAC 标志)。
完成所有操作后,您可以继续启用或禁用注册表重定向,以便 32 位进程可以访问 64 位注册表,或者 64 位进程可以打开注册表的 32 位视图。
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 当找不到请求的注册表值时,ReggetValue会返回什么
- 在哈希表复制构造函数中找不到错误
- 找不到'QAbstractItemViewPrivate'值的虚拟表的链接器符号
- 在我的代码中找不到带有链表的队列的错误
- XPCOM CPP代码在注册表中找不到现有项
- RegOpenKeyEx 找不到注册表项
- 尝试调用注册源时找不到 .rcc 文件
- 内存冲突:SIGSEGV 和"找不到虚拟表的链接器符号..."
- gdb、hp ux:获取消息找不到虚拟表 -- 对象可能尚未构造