Fi-lo em C#, mas a filosofia é a mesma, escrevendo para o registo, pelo que as instruções seguintes podem ser extrapoladas para o comando de linha. Devem ser feitas três coisas:
Escrever no Registo “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings”, em ProxyEnable: 1 para activar, 0 para desactivar
Escreva no Registo “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings”, em ProxyServer: xxx.xxx.xxx.xxx.xxxx:yyyyy (xxx… é o IP, yy… é a porta)
Depois de executar os passos 1 e 2 terá escrito para registar a activação do proxy e o IP e a porta, mas se abrir o browser irá notar que não é suficiente, ainda não pode navegar. O terceiro passo consiste em alterar o registo relativamente às definições de ligações:
“Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections” em “DefaultConnectionSettings”.
Repare que embora (pelo menos para W7) existam 204 bytes neste registo, apenas tem de modificar o byte 8 (9º, uma vez que o byte 0 é o primeiro). O valor do byte 8 não só contém informação sobre a activação/desactivação do proxy, mas também sobre outras funcionalidades:
//09 when only 'Automatically detect settings' is enabled
//03 when only 'Use a proxy server for your LAN' is enabled
//0B when both are enabled
//05 when only 'Use automatic configuration script' is enabled
//0D when 'Automatically detect settings' and 'Use automatic configuration script' are enabled
//07 when 'Use a proxy server for your LAN' and 'Use automatic configuration script' are enabled
//0F when all the three are enabled.
//01 when none of them are enabled.
No meu caso, a ‘Detecção automática de definições’ está sempre activada, pelo que mudo o valor do byte 8 de 09 para 0B e viceversa para activar e desactivar o proxy.