![]() |
Einstellungen des IE setzen
Hallo zusammen
Wie ich die ![]() Aber hat man ein Problem gelöst, tauchen gleich wieder 100 neue auf. Laut MS soll das zurückschreiben der Einstellungen mit folgender Funktion erfolgen:
Delphi-Quellcode:
Wenn ich diese aufrufe, bekomme ich immer den Fehler 12010 zurückgemeldet. Was mache ich falsch??? :wall:var ProxyInfo: PInternetProxyInfo; Len: LongWord; Len:= MAX_CACHE_ENTRY_INFO_SIZE; GetMem(ProxyInfo, Len); // Eintragen der Proxy Einstellungen (http, ftp etc.) SetProxyInfoString(ProxyInfo); try InternetSetOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len) finally FreeMem(ProxyInfo); end; |
Re: Einstellungen des IE setzen
Hallo,
Was genau macht die SetProxyInfoString() oder wo ist die Funktion deklariert? |
Re: Einstellungen des IE setzen
Hallo!
Sorry für die späte Reaktion, war aber drei Tage offline. :oops: Ich glaube ich muss es mal genauer erläutern. Mein Problem ist bei der Entwicklung einer Komponente aufgetreten, die mir alle Eigenschaften eines PC für die Internet Verbindungen bündeln soll. Dazu gibt es den Ansatz einer Basisklasse, die die Einstellungen aufnimmt und von Unterklassen für die jeweiligen Browser-Typen. Bei der Entwicklung der IE Komponente, trat dann mein Problem auf. Doch nun zu der Frage. :coder: Die Funktion SetProxyInfoString() ist von mir definiert worden um die Einstellungen zusammenzustellen die die Funktion InternetSetOption() in der wininet.dll benötigt. Laut der MSDN-Seite zu ![]() :gruebel: Der Quellcode könnte wahrscheinlich so aussehen :
Delphi-Quellcode:
Doch nun schlägt der Bug voll zu und gibt besagte Fehlermeldung zurück.uses WinInet; procedure SetProxyInfoString(ProxyInfo:PInternetProxyInfo); begin // nur mal als Beispiel ProxyInfo:= 'http:\\192.168.20.100:8080'; end; function SetInternetSettings: boolean var ProxyInfo: PInternetProxyInfo; Len: LongWord; begin Len:= MAX_CACHE_ENTRY_INFO_SIZE; GetMem(ProxyInfo, Len); //-- Eintragen der Proxy Einstellungen (http, ftp etc.) SetProxyInfoString(ProxyInfo); try //-- Das Problem ist wahrscheinlich in der ProxyInfo Variablen zu suchen Result:= InternetSetOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len) finally FreeMem(ProxyInfo); end; Was ist das Problem? :wall: |
Re: Einstellungen des IE setzen
Schau sonst mal hier:
![]() |
Re: Einstellungen des IE setzen
@toms
Ich habe nach gesehen und folgendes probiert. :coder2: Hier mal der Code:
Delphi-Quellcode:
Der Fehler ist weg. Leider habe ich keine Änderung der Einstellungen festgestellt, egal ob eine Instance des Browser aktiv ist oder nicht. :( function WriteSystemSettings: boolean; var ProxyInfo: PInternetProxyInfo; hInt : HINTERNET; begin //-- Variablen initialisieren ----------------------------------------------- Result := true; ProxyInfo:= New(PInternetProxyInfo); hInt := InternetOpen(PChar(Application.Title), INTERNET_OPEN_TYPE_DIRECT, nil, nil, INTERNET_FLAG_OFFLINE); //-- Versuche die Einstellungen zu schreiben -------------------------------- try ProxyInfo.dwAccessType := INTERNET_OPEN_TYPE_PROXY; ProxyInfo.lpszProxy := PChar('192.168.20.100:8080'); ProxyInfo.lpszProxyBypass:= PChar('<local>'); if not InternetSetOption(hInt, INTERNET_OPTION_PROXY, ProxyInfo, SizeOf(ProxyInfo^)) then Result:= GetError; finally FreeMem(ProxyInfo); end; end; Folglich muss da irgendwo noch ein Bug sitzen. :wall: Wer weiss da weiter? |
Re: Einstellungen des IE setzen
Zitat:
Delphi-Quellcode:
Sonst wird meines Wissens die Variable nur für die eine Procedure gesetzt, aber nicht an die aufrufende Procedure »zurückgeschickt«. Mich interessiert das Proxyeinstellungen-Setzen auch, möchte ich jetzt gleich ausprobieren.
//...
procedure SetProxyInfoString(var ProxyInfo:PInternetProxyInfo); begin // nur mal als Beispiel ProxyInfo:= 'http:\\192.168.20.100:8080'; end; //... LG, Delphi-Freak Edit: Achso, diese Procedure wird ja im letzten Versuch gar nicht mehr verwendet :oops: Edit2: Hab jetzt ein bisschen herumprobiert mit dem Setzen und Auslesen und bin zu dem Schluss gekommen, dass die Einstellungen nur für das momentane Programm gesetzt werden. Sie sind nur so lange »geändert« (aber auch nur in diesem Programm und auch keiner anderen Instanz), bis das Proggie beendet wird. Also irgenwie dürfte das nicht wie gewollt funktionieren :( LG, ich |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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