使用regsvr32.exe注册OCX并使其可供所有用户使用

Tro*_*orf 4 registry regsvr32 ocx

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

REGSVR32/S MyFile.ocx

这很好用,我可以毫无问题地使用Web应用程序.在注册表中,我可以看到控件已正确注册.

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

如果我将该用户添加到管理员组并让他们运行REGSVR32命令,它可以正常工作.不幸的是,让我的所有用户成为他们机器上的管理员真的不可行.

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

谢谢!

Vla*_*den 5

通常,regsvr32在HKEY_LOCAL_MACHINE\software\Classes中注册CLSID信息,因此所有用户都应该可以看到注册.

问题可能出在您的OCX上.它可能会在启动时执行某些操作,阻止为非管理员用户打开它.例如,它需要写一些东西到HKEY_LOCAL_MACHINE注册表,写入Windows目录,...

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

如果您的OCX在管理员帐户下没有执行任何操作,您可以尝试做的是使用RegSvrEx工具在HKEY_CURRENT_USER 下注册OCX .这样您的OCX将在current_user_level下注册

  • 我想到了。我是从非管理员用户无权访问的位置注册OCX的。我修改了脚本,因此首先将文件复制到本地计算机,然后注册它。奇迹般有效。谢谢你的帮助! (2认同)