AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einstellungen des IE setzen

Ein Thema von DirkG · begonnen am 15. Jun 2005 · letzter Beitrag vom 27. Jun 2005
Antwort Antwort
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#1

Einstellungen des IE setzen

  Alt 15. Jun 2005, 11:17
Hallo zusammen

Wie ich die Einstellungen des IE lese, habe ich mehr oder wenige rausgefunden.
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:

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;
Wenn ich diese aufrufe, bekomme ich immer den Fehler 12010 zurückgemeldet. Was mache ich falsch???
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Einstellungen des IE setzen

  Alt 18. Jun 2005, 08:52
Hallo,
Was genau macht die SetProxyInfoString() oder wo ist die Funktion deklariert?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Einstellungen des IE setzen

  Alt 20. Jun 2005, 09:01
Hallo!
Sorry für die späte Reaktion, war aber drei Tage offline.

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.
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 InternetQuerryOption soll InternetSetOption mit den selben Parametern versorgt werden, wie die Funktion InternetQuery Option, um das zurückschreiben der Einstellungen vorzunehmen.

Der Quellcode könnte wahrscheinlich so aussehen :
Delphi-Quellcode:

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;
Doch nun schlägt der Bug voll zu und gibt besagte Fehlermeldung zurück.
Was ist das Problem?
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Einstellungen des IE setzen

  Alt 21. Jun 2005, 05:28
Schau sonst mal hier: http://www.delphipraxis.net/internal...ernetsetoption
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von DirkG
DirkG

Registriert seit: 29. Sep 2003
Ort: Schwerin
67 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Einstellungen des IE setzen

  Alt 21. Jun 2005, 13:50
@toms
Ich habe nach gesehen und folgendes probiert.

Hier mal der Code:

Delphi-Quellcode:

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;
Der Fehler ist weg. Leider habe ich keine Änderung der Einstellungen festgestellt, egal ob eine Instance des Browser aktiv ist oder nicht.

Folglich muss da irgendwo noch ein Bug sitzen.
Wer weiss da weiter?
Human are Human to make mistakes.
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#6

Re: Einstellungen des IE setzen

  Alt 27. Jun 2005, 18:16
Zitat von DirkG:
Delphi-Quellcode:
//...
procedure SetProxyInfoString(ProxyInfo:PInternetProxyInfo);
begin
  // nur mal als Beispiel
  ProxyInfo:= 'http:\\192.168.20.100:8080';
end;
//...
Gehört da nicht ein »var« vor ProxyInfo, also dann so:
Delphi-Quellcode:
//...
procedure SetProxyInfoString(var ProxyInfo:PInternetProxyInfo);
begin
  // nur mal als Beispiel
  ProxyInfo:= 'http:\\192.168.20.100:8080';
end;
//...
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.

LG, Delphi-Freak

Edit: Achso, diese Procedure wird ja im letzten Versuch gar nicht mehr verwendet

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
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  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 16:39 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