【问题标题】:Error accessing Project > References window?访问“项目”>“参考”窗口时出错?
【发布时间】:2008-09-19 18:36:22
【问题描述】:

在 Visual Basic 6 中,当我尝试访问 Project > References 时,会引发错误:

访问系统注册表时出错

我是:

  • 以本地计算机管理员身份登录
  • 运行 Windows XP Professional 和
  • 我可以执行regedt32.exe 并访问所有注册表项就好了。

VB6 以本地管理员身份安装。

知道为什么会这样吗?


我正在运行水晶报告 8.5,它应该已经解决了这个问题,但显然我在安装 8.5 时仍然存在问题。我还尝试重新安装水晶报告,但在这个问题上没有运气。

【问题讨论】:

    标签: vb6 registry regtlib


    【解决方案1】:

    对我来说这很有效:

    1. 转到 C:\Program Files\Microsoft Visual Studio\VB98
    2. 右键更改VB6.EXE的属性->兼容性在权限级别部分,勾选以管理员身份运行此程序

    【讨论】:

    • 我已经尝试了所有答案,这解决了我的问题,谢谢(我在 windows 7 x64 上运行 VB6)
    • 确认这在 Win10 64 位上对我有用。有趣的是,直到今天(星期一)这才成为问题……上周整个星期都没有问题(除了糟糕的 vb6)!我迫不及待地想完成 vb6/com!
    • 我使用路径 C:\Program Files (x86)\Microsoft Visual Studio\VB98 并按照步骤 2 解决了问题。
    【解决方案2】:

    根据您拥有的 Windows 操作系统(我有 Windows 7 企业版),您可能想尝试为 REGTLIB.EXE(位于 C:\Windws)授予管理员权限。右键单击 REGTLIB.EXE 文件。从弹出菜单中选择属性。然后选择兼容性选项卡。在兼容性选项卡上,选中/选中以管理员身份运行此程序复选框。单击确定以保存您的更改。它可能会为您解决问题。它对我有用。祝你好运。

    【讨论】:

    • 你到底是怎么想出来的?我(可悲地)在安装了 MINIMUM vb6.exe 的原始 Windows 7 x64 位机器上构建了一些 VB6 代码(我未选中每个选项)。并被卡住并找到了这个。如果可以的话,我会给你20分。 VB6 很烂。 COM糟透了。这个帖子太棒了。
    • 我可以确认这个对我有用!我的包含文件夹是 C:\Windows\Microsoft.NET\Framework\v4.0.30319
    • 我认为这发生在安装 VB6 而不是管理员的情况下。我第一次安装它时没有成为管理员,直到我在 IDE 中打开一个 VB6 项目,安装程序才为我抱怨。但是,通过从右键菜单中选择Run as administrator 选项卸载并重新安装后,我没有收到此错误。
    【解决方案3】:

    如果您运行的是 Office 2010(测试版),Word(显然)会写入一个受限的注册表项。 VB 在扫描注册表时抛出错误。我的关键是:

    HKCR\TypeLib\{00020905-0000-0000-C000-000000000046}\8.5

    对于 Regmon - 过滤进程名称 -> “vb6.exe”和结果 -> ACCESS DENIED。帮助快速找到它。

    使用 PSToosl (PSEXEC) 修复它以运行注册表编辑器。命令行是,

    psexec -i -d -s c:\windows\regedit.exe

    psexec 需要以提升的权限运行。


    由 Jim 编辑:我使用的是 Windows 7 (x64) 机器。提升权限需要 PSTools 解决方案。 XP 可以少一点。

    【讨论】:

      【解决方案4】:

      您可以尝试Process Monitor 查看访问了哪些注册表项。

      【讨论】:

      • 你的意思是regmon吗?我试过了,一切似乎都很好。也许我只是没有正确使用过滤器。
      • 是的,我的意思是 regmon。 Process Monitor 将 regmon、filemon 和 procmon 捆绑到一个应用程序中,但它基本上是一回事。您应该看到哪些 Keys VB 尝试访问,以及它是成功还是失败。显然你应该寻找失败。
      【解决方案5】:

      我在用于 VB6 开发的机器上得到了这个。我一直在用 VB6 构建很多 COM DLL(没有二进制兼容性),而注册表中积累的垃圾最终变得太多了。

      查看注册表的大小以及您设置的限制。我将注册表大小增加了一倍,然后去寻找一个好的注册表。

      【讨论】:

        【解决方案6】:

        这是来自 Microsoft 的解决方案。它引用了 Crystal Reports 问题,但该解决方案仅使用 regedit32 遍历 HKEY_CLASSES_ROOT\TypeLibHKEY_CLASSES_ROOT\CLSID 注册表分支以获取暗键并更正这些键的安全性。如果 regedit32 无法访问密钥,也有修复安全性的说明。 Article ID: 269383

        【讨论】:

          【解决方案7】:

          在 Windows 7 中,转到开始菜单,然后右键单击“Microsoft Visual Basic 6”,然后选择属性并从出现的对话框中单击兼容性,然后勾选“以管理员身份运行此程序”。

          【讨论】:

            【解决方案8】:

            你试过this? 基本上,似乎是水晶报表的问题。希望对您有所帮助。

            【讨论】:

              【解决方案9】:

              也许值得一试去“用户帐户控制设置”。 问候,

              【讨论】:

                【解决方案10】:

                当我在 Win7-64 上安装 VB6(使用搜索引擎很容易找到的说明)时,它运行良好。 UAC 已关闭 - 即设置为“从不通知”。

                几周后,我打开了 UAC——即将它设置为默认值。由于“访问系统注册表时出错”问题,VB6 无法编译。不幸的是,再次关闭它并没有帮助。显然,打开它所造成的损害是不可逆转的。我无法解释为什么会这样,但这是我的经验。

                在关闭 UAC 的同时授予 REGTLIB.EXE 管理权限听起来是个好主意,但这对我也不起作用。

                最后,使用此处其他帖子中描述的 Process Monitor 和 PsTools 有效。但是,我不得不将大部分注册表的完全控制权交给所有人。这不仅仅适用于隔离键。看来编译器需要给主要节点添加key,所以我不得不打开这些整个节点。

                除了完成这些步骤需要花费数小时这一事实之外,我现在比尝试通过 UAC 提高安全性之前暴露的要多得多,但是,我需要 VB6,并且没有看到没有新的解决方案电脑。

                教训:不要在 VB6 中使用 UAC。除非你已经到达这里,否则为时已​​晚。

                【讨论】:

                  【解决方案11】:

                  这是 VB6 安装问题。尝试在您的系统上重新安装 VB6。否则,使用“以管理员身份运行”打开“visual studio 6.0”。然后通过 - 新项目 -> 现有选项卡打开/浏览您的项目 .vbp 文件。

                  【讨论】:

                    【解决方案12】:

                    我已经解决了这个问题。但是上面的建议都没有奏效。我所做的是让每个人都完全控制注册表中的SYSTEM 键。这会造成安全漏洞。我正在运行带有 vb6 服务包 6B 的 64 位 Windows 7。

                    【讨论】:

                      【解决方案13】:

                      我正在运行 64 位的 Windows 10 Pro (10.0.16299 Build 16299)。我在尝试编译 VB6 DLL 时遇到此错误。

                      我在这篇文章中看到了几个关于以管理员身份在兼容模式下运行的答案。我想我会首先尝试在Windows XP (sp2) 的兼容模式 下运行。选中该框后,我能够编译我的 DLL。我不需要以管理员身份运行。

                      【讨论】:

                        猜你喜欢
                        • 2017-10-01
                        • 1970-01-01
                        • 2023-02-04
                        • 1970-01-01
                        • 2021-07-31
                        • 1970-01-01
                        • 1970-01-01
                        • 2011-01-18
                        • 1970-01-01
                        相关资源
                        最近更新 更多