Nicht-Abfrage-Proxys "automatische Suche der Einstellungen" auf windows 7
Ich versuche zu erfassen, proxy-Einstellungen ("Einstellungen Automatisch Erkennen"). Mein code funktioniert auf XP und Vista.
Aber es funktioniert NICHT auf Windows 7
Bitte sehen Sie die details der Zielplattform
Windows 7 Enterprise, IE 8.0.7600.16385, Wininet.dll 8.0.7600.16535
Finden Sie das code-snippet
INTERNET_PER_CONN_OPTION_LIST List;
INTERNET_PER_CONN_OPTION Option[1];
unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_FLAGS;
List.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
List.pszConnection = NULL;
List.dwOptionCount = 1;
List.dwOptionError = 0;
List.pOptions = Option;
if(!InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, &nSize))
AfxMessageBox(L"InternetQueryOption failed! (%d)\n");
TCHAR a[100];
swprintf(a, L"Flag value is : %d",Option[0].Value.dwValue, 80);
AfxMessageBox(a);
Aber auf Windows 7, auch wenn "Automatisch Erkennen-Einstellungen" - option im IE aktiviert ist, wird das Programm sagt, dass das flag nicht gesetzt ist
Versuchte ich mit WinHttp-api auch, wie unten gezeigt.
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG stProxyConfig = {0};
WinHttpGetIEProxyConfigForCurrentUser(&stProxyConfig);
if (stProxyConfig.fAutoDetect == TRUE)
AfxMessageBox(L"Auto proxy detection enabled");
else
AfxMessageBox(L"Auto proxy detection disabled");
Auf Windows 7, obige code auch nicht auf die Erfassung der "Einstellungen Automatisch Erkennen" - option.
Alle Beiträge zu diesem wird sehr geschätzt.
Dank
John
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist ein neues performance-Optimierung feature in IE8 aufgerufen SmartWPAD.
WinINET überwacht, ob ein bestimmtes Netzwerk hat einen WPAD-server (z.B. was das Erkennen Automatisch die Funktion wird verwendet, um zu suchen). Wenn das Netzwerk nicht über einen WPAD-server, dann WinINET effektiv "Masken" die "Use autodetect" - bit, wenn Sie die InternetQueryOption, so dass Ihr code nicht verschwenden eine Menge Zeit tut ein proxy-lookup, die zurückkehren wird kein proxy für dieses Netzwerk.
Wenn Sie MUSS die UI-state (Sieg über die WinINET-SWPAD-Funktion), weil, zum Beispiel, planen Sie diese Informationen aufnehmen und Zwischenspeichern, die Sie zur Nutzung auf einem anderen Netzwerk, oder etwas ähnliches, dann müssen Sie die Abfrage für INTERNET_PER_CONN_FLAGS_UI zuerst-wenn Sie diese option verwenden, erhalten Sie wieder den UI-Status, unabhängig von der SWPAD Funktion.
Wenn diese Abfrage fehlschlägt, wird das system mit einer früheren version von Internet Explorer und der Kunde sollte die Abfrage wieder mit INTERNET_PER_CONN_FLAGS.
Habe ich eine C# - Codeausschnitt, wo Sie können aktivieren/Deaktivieren Sie "automatische Suche der Einstellungen" das Kontrollkästchen der IE-Verbindung-Einstellungen. Sie können finden, was Sie suchen, in diesem snippet.