在VB 6 IDE中访问系统注册表时出错
在Visual Basic 6中,当我尝试访问"项目">"引用"时,将引发错误:
Error accessing system registry
我是:
- 以本地计算机管理员身份登录
- 运行Windows XP Professional和
- 我可以执行
regedt32.exe
并访问所有注册表项。
VB6已作为本地管理员安装。
知道为什么会这样吗?
我之前已经访问过该帖子。我正在运行Crystal Report 8.5,它应该已经解决了该问题,但是显然我仍然安装了8.5. 我也尝试过重新安装Crystal报表,但对此问题没有运气。
解决方案
你有试过吗?基本上,这似乎是一个水晶报道的问题。希望能有所帮助。
我们可以尝试使用Process Monitor来查看访问了哪些注册表项。
我在用于VB6开发的机器上得到了这个。我已经从VB6构建了许多COM DLL(没有二进制兼容性),并且在注册表中积累的残骸最终变得太多了。
看一下注册表的大小以及我们设置的限制。我将注册表大小增加了一倍,然后去寻找一个良好的注册表悬停对象。
根据我们拥有的Windows操作系统(我有Windows 7 Enterprise),我们可能想要尝试为REGTLIB.EXE(位于C:\ Windws)授予管理员权限。右键单击REGTLIB.EXE文件。从弹出菜单中选择"属性"。然后选择"兼容性"选项卡。在"兼容性"选项卡上,选中/选中"以管理员身份运行该程序"复选框。单击确定保存更改。它可能会为我们解决问题。它为我工作。祝你好运。
如果我们正在运行Office 2010(测试版),则Word(显然)会写一个受限制的注册表项。扫描注册表时,VB引发错误。我的关键是:
HKCR \ TypeLib {00020905-0000-0000-C000-000000000046} \ 8.5
对于进程名称->" vb6.exe"和结果->" ACCESS DENIED"的Regmon过滤器。帮助快速找到它。
使用PSToosl(PSEXEC)修复了该问题,以运行注册表编辑器(命令行为
psexec -i -d -s c:\ windows \ regedit.exe
从以管理员身份运行命令行。
高温超导
吉姆
编辑/ PS我在Windows 7(x64)框上。提升的权限需要PSTools解决方案。 XP可以少花点钱。
这是Microsoft提供的解决方案。它引用了Crystal Reports问题,但是该解决方案仅使用regedit32来遍历HKEY_CLASSES_ROOT \ TypeLib和HKEY_CLASSES_ROOT \ CLSID注册表分支,以使键变暗并更正这些键的安全性。如果regedit32无法访问密钥,也有修复安全性的说明。商品号269383