AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WinInet.InternetSetOption Problem - WinInet-Cache?
Thema durchsuchen
Ansicht
Themen-Optionen

WinInet.InternetSetOption Problem - WinInet-Cache?

Offene Frage von "smt"
Ein Thema von CodeX · begonnen am 4. Dez 2009 · letzter Beitrag vom 21. Jul 2010
 
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#1

WinInet.InternetSetOption Problem - WinInet-Cache?

  Alt 4. Dez 2009, 18:49
Ich möchte aus meinem Programm-Code heraus die IE Proxy-Einstellungen ändern.
Dazu ändere ich die Einstellungen in der Registry und teile Windows mit, dass diese geändert wurden. Dieses Vorgehen wird auf hunderten von Seiten im Internet so beschrieben und funktioniert auf den ersten Blick auch.

Das Problem ist nun: Es funktioniert nur ein einziges Mal im aktuellen Prozess!

Hier ein simples Beispiel:
Delphi-Quellcode:
procedure DisableProxy;
var
  Reg : TRegistry;
begin
  Reg := TRegistry.Create;
  Reg.Rootkey:= HKEY_CURRENT_USER;
  Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings',False);
  Reg.WriteBool('ProxyEnable',False);
  Reg.CloseKey;
  Reg.Free;
  InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
  //oder InternetSetOption(nil, INTERNET_OPTION_REFRESH, nil, 0);
end;
Zum Nachvollziehen:
1. Die obere Funktion in ein neues Projekt einbinden, sodass es mit einem Button ausgeführt werden kann.
2. Manuell einen beliebigen Proxy einstellen (Systemsteuerung > Internetoptionen > Verbindungen > LAN-Einstellungen > [x]Proxyserver für LAN verwenden und eine Adress+Port eingeben) und bestätigen
3. Im Programm den Button betätigen
4. Die Einstellungen über die Inernetoptionen überprüfen -> Haken ist weg
5. Haken wieder setzen und bestätigen
6. Im Programm den Button wieder betätigen
7. Die Einstellungen überprüfen -> Haken ist immer noch da!
8. Programm schließen, wieder starten, Button betätigen
9. Einstellungen prüfen -> Haken weg!

InternetSetOption funktioniert nur beim ersten Aufruf korrekt. Beim zweiten Aufruf werden die manuellen Registry-Änderungen einfach verworfen. Ich verstehe absolut nicht warum, vermute aber, dass WinInet irgendwie bzw. irgendwas cached. Lässt sich das unterbinden oder umgehen?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz