J'écris un programme pour commuter automatiquement mon adresse proxy en fonction du réseau que je suis connecté à. p>
J'ai jusqu'à présent obtenu tout pour travailler sauf la partie que j'ai soulignée ci-dessous. p>
p>
Y a-t-il un moyen de modifier le script de configuration automatique et les paramètres de détection automatique dans le code? P>
La solution peut être une modification du registre P / invoke. J'ai juste besoin de quelque chose qui fonctionne. P>
5 Réponses :
Vous pouvez modifier les paramètres de proxy à l'aide du registre. Voir le lien suivant:
http://support.microsoft.com/kb/819961
Chemin de clé: Valeurs: strong> P> HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Paramètres Internet CODE> P>
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxyEnable"=dword:00000001
"ProxyOverride"="proxyexceptionname:portnumber;anotherexceptionname:port
"ProxyServer"="ftp=MyFTPProxy:Port;http=MYHTTPPROXY:PORT;https=MYHTTPSPROXY:PORT
"AutoConfigURL"=""
Merci pour les informations sur le autoconfigurl code>. C'était une chose que je cherchais. J'ai trouvé comment désactiver / activer l'autre case à cocher ( détecter automatiquement les paramètres i>) en lisant Commentaire d'Andrew Swan à la question SuperUserSer.com que vous avez liée . Il dit fondamentalement à soustraire 8 de la neuvième octet de
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Paramètres Internet \ Connections | DefaultConnectionsSETTES CODE> Pour désactiver l'option.
J'ai fouillé pour cela. Mais comme je ne pouvais pas trouver, j'avais écrit l'extrait de code ci-dessous qui fonctionne à cet effet.
/// <summary> /// Checks or unchecks the IE Options Connection setting of "Automatically detect Proxy" /// </summary> /// <param name="set">Provide 'true' if you want to check the 'Automatically detect Proxy' check box. To uncheck, pass 'false'</param> public void IEAutoDetectProxy(bool set) { // Setting Proxy information for IE Settings. RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(@"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Connections", true); byte[] defConnection = (byte[])RegKey.GetValue("DefaultConnectionSettings"); byte[] savedLegacySetting = (byte[])RegKey.GetValue("SavedLegacySettings"); if (set) { defConnection[8] = Convert.ToByte(9); savedLegacySetting[8] = Convert.ToByte(9); } else { defConnection[8] = Convert.ToByte(1); savedLegacySetting[8] = Convert.ToByte(1); } RegKey.SetValue("DefaultConnectionSettings", defConnection); RegKey.SetValue("SavedLegacySettings", savedLegacySetting); }
Grande aide. Merci de sauver mon temps.
meilleur que http://support.microsoft.com/kb/819961 , via. Fichier REG, nous devrions faire référence à http://support.microsoft.com/kb/226473 "< un href = "http://support.microsoft.com/kb/2226473" rel = "nofollow"> Comment interroger et définir des paramètres de proxy sous Internet Explorer ", utilisez INTERNETSETOPTION (). P>
comme http://blogs.msdn.com/b/ieinternals/archive/2013/10/11/web-proxy-configuration-and-ie11-changes.aspx a déclaré: "Plutôt que de tenter de" poquer " Le registre directement, la manière appropriée de mettre à jour le paramètre proxy consiste à utiliser l'API INTERNETSETOPTION. " P>
Il semble nécessiter un certain nombre de p / invoquer. Je vais essayer et voir comment ça se passe. Merci.
Je réponds parce que je ne suis pas autorisé à commenter les réponses. Je tiens à signaler une différence entre la manipulation de Registry VS à l'aide d'InternetSetOptionAPI. Si vous ragez directement du registre pour modifier les paramètres de proxy, les navigateurs comme Chrome dépend de la configuration du proxy Wininet ne permettent pas de collecter immédiatement les nouveaux paramètres, mais si vous modifiez à l'aide d'InternetSetOptionAPI, les nouveaux paramètres seront utilisés immédiatement. C'est mon expérience. Je ne suis pas allé dans les détails pour savoir ce qui peut être fait pour ramasser les paramètres après la manipulation du registre.
Edit:
Afin de rafraîchir les paramètres de proxy Wininet, vous pouvez effectuer un simple identifiant d'API d'interneSetoption comme suit P> source: Définir par programme paramètres de proxy de navigateur dans C # P> P>
C'est plus facile et en fait plus simple i> de modifier les paramètres de proxy via le registre Windows. Vous pouvez savoir comment je l'ai fait ici dans un programme que j'ai écrit qui modifie automatiquement les paramètres de proxy en fonction du réseau configuration. La chose essentielle à retenir d'invoquer le interneSetoption code> A> Méthode après avoir apporté les modifications requises pour notifier d'autres programmes de modification.
Vous avez raison Alex, je viens de vérifier votre code dans le lien ci-dessus, j'ai déjà fini de combiner les réponses de ce poste ainsi que celui que j'ai mentionné dans ma réponse pour obtenir le résultat souhaité. Merci.