我正在执行这些周六早上的任务之一,试图理解为什么搜索我的计算机注册表中的某些信息会花费大量的时间,甚至会迫使我停止这个过程。使用其中一个注册表清理器,我发现代码花费了几十分钟来遍历代码行,如下所示:
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Settings\CommandBars\ACBCustom Popup...由于我不能通过我的标准regedit访问这些行(它冻结了...),我发现了一段代码here,我稍微更新了一下,以便能够计算所有这些行,最终发现我的注册表中有70797个ACBCustom弹出行!
我想(但我不确定……)这与我们在access应用程序中广泛使用自定义菜单栏有关,在access应用程序中,每个窗体都有其在运行时创建的特定菜单栏,但我认为这些命令栏在过程结束时会自动删除。如果是,注册表中的这些行是用来做什么的?在运行ms-access应用程序时,我们如何避免创建它们?
发布于 2012-02-09 17:26:37
好的,
因为似乎没有人知道(或关心),我做了我的功课。这只是为了确认每次使用Application.CommandBars.Add方法时都会在注册表中添加一行。
除非您在关闭access应用程序之前明确删除所有临时命令栏,否则这些行将永久保留在注册表中。
我想在关闭应用程序之前删除这些命令栏可以被认为是“最佳实践”。一种解决方案是,一旦不再需要临时命令栏,就明确地删除它们。另一种选择是在退出应用程序时浏览所有命令栏,删除临时命令栏:
For i = Application.CommandBars.Count To 1 Step -1
If not Application.CommandBars(i).BuiltIn Then
Application.CommandBars(i).Delete
End If
Next ihttps://stackoverflow.com/questions/9139877
复制相似问题