BHO不能更改注册表值

BHO cannot change registry values

本文关键字:注册表 不能 BHO      更新时间:2023-10-16

我想在internet explorer导航到web地址之前更改BHO的代理设置。微软HKEY_CURRENT_USER Software Windows CurrentVersion 网络设置

我使用RegOpenKeyEx, RegSetValueEx, RegCloseKey来改变BHO中的ProxyServer和ProxyEnable值,BEFORENAVIGATE2事件。但是,当它使用RegOpenKeyEx打开注册表时,该函数返回的值与ERROR_SUCCESS不同。如果我尝试用相同的代码更改注册表,但从一个简单的程序,而不是BHO,那么这个代码将工作,所以它不是在BHO工作。

RegOpenKeyEx返回一个与ERROR_SUCCESS不同的LONG类型值,该值等于5,因此它似乎无法打开注册表。没有什么要显示的,因为我的代码很简单,使用这3个函数来打开注册表和更改值。如果我在桌面程序中做同样的操作,那么它将成功打开并更改注册表值。所以我认为它在注册表上有一些权限问题。

如何使其工作,或者如何在internet explorer导航到网址之前更改代理,有或没有注册表?

Internet Explorer使用WinInet API进行连接,因此您应该使用WinInet API来操作Internet Explorer的设置,特别是InternetSetOption()函数。不要直接操作注册表。以WinInet的INTERNET_OPTION_PROXY选项为例。