hmm...that's the way my proxy's are. Although that could be just for sending certain protocols to separate proxy servers.
Still, is ProxyEnable set to 0x00000001?
Printable View
hmm...that's the way my proxy's are. Although that could be just for sending certain protocols to separate proxy servers.
Still, is ProxyEnable set to 0x00000001?
Actually, I think bat711 is correct. On my computer the ProxyServer key value has the setting "https=127.0.0.1:1080" (without the quotes but it's a string setting).
okay, let me try. but here it isnt..
i tried it, still not working...is your ProxyServer a REG_SZ
Correct. It's a multiple value string delimited with semi-colons.
Surprised this doesn't work though, I was planning on doing something similar in a program soon so I'm interested to know why Internet Explorer isn't reading the Reg Keys even when set.
*EDIT*
Here is all the Reg Key Values for proxy settings that I have set:
ProxyEnable ---- REG_DWORD ---- 0x00000001 (1)
ProxyHTTP1.1 ---- REG_DWORD ---- 0x00000001 (1)
ProxyOveride ---- REG_SZ ---- 127.0.0.1;192.168.*.*;<local>;(CompanyDomains)
ProxyServer ---- REG_SZ ---- ftp=*.*.*.*;http=*.*.*.*;https=*.*.*.*
Yeah, the ProxyServer setting is stored as a REG_SZ, while the ProxyEnabled is a REG_DWORD. I also think that IE needs to be restarted.
yes this isnt working...i dont know why either :rolleyes:
what im going to have to do i guess is do a harddrive scan, thru all txt based files and look for the current ie proxy ip :mad:
I just noticed that when you change the Proxy settings from IE, it also makes changes in HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections.
Find your connection in there and read the REG_BINARY values for it to a byte array. Change the ninth byte (probably have index 8 since an array is zero based by default) to 1 (enable proxy). Increase the 5th byte (index 4) with 1. From the 17th byte (again index is probably 16) you have to copy the the string you've set ProxyServer to, use the Asc() function to get the ascii value of each character in the string. This string (that you copy here) can be maximum 20 characters in length. All remaining bytes (from 17-36) that does not contain your proxyserver string must be set to 0.
It looks like it includes a header and footer on the data as well. Microsoft sure makes that difficult to change... :rolleyes:
*EDIT* I see you had that included, although I have a significantly longer string strored in mine than 20 characters. I have somewhere around 500 characters.
How did you find that?
Oh, I suppose the string can be longer then 20 bytes, however it looks like it must be at least 20 bytes long so you have to fill it up with 0 if the actual string is shorter.
The way I found it out was that I simply took a backup of the Internet Settings key and then changed my proxy settings in IE and then started comparing them. When I noticed that my Connections key had change it was a pretty simple task to try to find out what each byte that changed meant. I had to change the proxy settings a couple of time but.... Well I figured it out.
The problem with doing this registry hack is that no running instance of IE will start using them so you need to restart IE. So I started looking for another way of doing this and it looks like you could change the proxy setting with a call to InternetSetOptions. However to change the proxy settings you need to use an INTERNET_PER_CONN_OPTION_LIST structure. The problem with using that structure in VB is that one of the members require a pointer to an INTERNET_PER_CONN_OPTION structure array and that in turn contains a C/C++ union which is not supported by VB. You should however be able to substitute the union with only the required member but it's still a bit of a hazzle to get that working.
wow thats nuts!
okay, i think we are gonna give up on this project..maybe pick it up in a few weeks/months :)
thanks for your help