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
Antwort Antwort
CodeX

Registriert seit: 30. Okt 2004
471 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
smt

Registriert seit: 29. Okt 2007
15 Beiträge
 
#2

AW: WinInet.InternetSetOption Problem - WinInet-Cache?

  Alt 6. Jul 2010, 10:19
Ich muss diesen alten Beitrag hier nochmals hochholen, da ich genau das gleiche Problem habe. Hat niemand eine Idee?

@codex: Hast Du damals eine Lösung für das Problem gefunden?

VG Sascha
  Mit Zitat antworten Zitat
Simon Joker

Registriert seit: 6. Sep 2002
2 Beiträge
 
#3

AW: WinInet.InternetSetOption Problem - WinInet-Cache?

  Alt 9. Jul 2010, 23:46
setze TRegistry.LazyWrite auf false
  Mit Zitat antworten Zitat
smt

Registriert seit: 29. Okt 2007
15 Beiträge
 
#4

AW: WinInet.InternetSetOption Problem - WinInet-Cache?

  Alt 12. Jul 2010, 11:42
Hallo Simon,

bringt leider auch nichts. In die Reg schreibt er alles korrekt.
Aber sobald ich

InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);

ein zweites mal innerhalb der Anwendung aufrufe, überschreibt er den Reg-Eintrag wieder. Beende ich das Programm und starte es dann nochmal, klappt es wieder. Aber eben auch nur einmal

VG Sascha
  Mit Zitat antworten Zitat
smt

Registriert seit: 29. Okt 2007
15 Beiträge
 
#5

AW: WinInet.InternetSetOption Problem - WinInet-Cache?

  Alt 21. Jul 2010, 15:15
Gibt es echt niemanden, der dieses Problem schon mal hatte? Das kann ich mir einfach nicht vorstellen, vor allem weil es so leicht reproduzierbar ist.

VG Sascha
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz