5

我有一个第三方 Web 应用程序,它依赖于在用户计算机上注册的特定 OCX 文件。我已经以管理员身份进入计算机并使用以下命令注册了文件:

REGSVR32 /S MyFile.ocx

这工作正常,我可以毫无问题地使用 Web 应用程序。在 regedit 中,我可以看到控件已正确注册。

但是,当另一个不是管理员的用户登录计算机并尝试运行 Web 应用程序时,它不起作用。

如果我将该用户添加到管理员组并让他们运行 REGSVR32 命令,它对他们来说效果很好。不幸的是,让所有用户成为他们机器上的管理员对我来说确实是不可行的。

有没有办法可以使用 REGSVR32 注册 OCX 文件并让所有用户都可以使用它,即使是没有管理员权限的用户?

谢谢!

4

1 回答 1

6

通常 regsvr32 在 HKEY_LOCAL_MACHINE\software\Classes 中注册 CLSID 信息,因此注册应该对所有用户可见。

问题可能出在您的 OCX 上。它可能会在启动时做一些事情,阻止非管理员用户打开它。例如,它需要向 HKEY_LOCAL_MACHINE 注册表写入一些内容,写入 Windows 目录,...

您可以使用Process Monitor工具检查此 OCX 是否正在为非管理员用户执行某些操作并检查 ACCESS_DENIED 错误。

如果您的 OCX 在 admin 帐户下没有执行任何操作,您可以尝试使用RegSvrEx工具在 HKEY_CURRENT_USER 杠杆下注册您的 OCX。这样您的 OCX 将在 current_user_level 下注册

于 2012-12-16T03:09:30.117 回答