0

我制作了一个浏览器插件并尝试从 IE 中的 .cab 文件部署它。它是按用户安装的。我的问题是在 Windows XP 中,安装在不同的用户中运行良好。但是,在 Windows 7 中,当打开包含 .cab 的页面时,会下载并解压 .cab 文件,但是当我单击“安装”按钮时,没有任何反应。

这是 .inf 文件:

[version]
Signature="$CHICAGO$"
AdvancedINF=2.0

[Deployment]
InstallScope=user

[Setup Hooks]
hook1=hook1

[hook1]
run=%EXTRACT_DIR%\MyPlugin.exe

“MyPlugin.exe”也在 .cab 文件中。

注意代码中有一个 [Deployment] 段,我是从MSDN得到的,如果删除这个段,它可以安装在 Win7 中,但是 UAC 弹出,我需要输入管理员密码。但是我制作的浏览器插件是针对每个用户的,我认为这里不需要管理员权限。

更新: 现在我发现IE只在从内网浏览页面时才请求管理员权限,否则如果从互联网浏览它仍然会请求管理员权限,所以我怀疑IE会强制使用管理员权限执行钩子安装.exe 文件。

4

2 回答 2

0

如果您的 %EXTRACT_DIR% 位于 \users\%user%\ 或任何子目录之外的任何位置,则需要管理员密码:即。程序文件。

于 2012-12-17T07:04:45.297 回答
0

您可能没有在HKEY_CURRENT_USER下注册插件,以便在 Windows 7 上没有正确弹出 UAC 弹出窗口的情况下进行部署。根据 MSDN,您的插件需要在 HKEY_CURRENT_USER 下注册:On both Windows XP and Windows Vista, non-administrators are prevented from installing any ActiveX on their own. But now an **ActiveX registered under the HKEY_CURRENT_USER** hive is now fully supported by Internet Explorer within the context of a user's privilege level.

于 2012-12-17T07:22:45.400 回答