Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Internet-Explorer Einstellungen auslesen (https://www.delphipraxis.net/45677-internet-explorer-einstellungen-auslesen.html)

DirkG 10. Mai 2005 15:29


Internet-Explorer Einstellungen auslesen
 
Hallo wer kann helfen? :roll:

Ich arbeite mit dem Notebook in verschiedenen Netzwerken. Um ins Internet zu kommen muss ich jedesmal die Einstellungen des Internet-Explorer von Hand ändern. Ich will nun ein kleines Tool schreiben, das diese Einstellungen als Profil speichert und sie bei Bedarf wieder einliest. :)

So weit glaube ich ist alles klar. Nun das Problem. Ich habe schon einen Hinweis, das ich dazu die WinInet.dll nutzen könnte.

Folgender Code zwingt den IE ja seine Einstellungen neu zu laden. Wie kann ich aber die Einstellungen lesen? Was aber muss beim Aufruf von hInet stehen? :wall:

Delphi-Quellcode:
uses WinInet;

procedure ReloadIESettings;
var HInet: HINTERNET;
begin
  hInet := InternetOpen(PChar('YourAppName'), INTERNET_OPEN_TYPE_DIRECT,
    nil, nil, INTERNET_FLAG_OFFLINE);
  try
    if hInet <> nil then
      InternetSetOption(hInet, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
  finally
    InternetCloseHandle(hInet);
  end;
end;
Vieleicht gibt es ja auch eine Lösung per Registry, dann wäre die Frage wo suchen um alle Einstellungen (Proxy, DFÜ-Verbindungen, Standard-Verbindung etc.) zu erwischen. :gruebel:

wolke 10. Mai 2005 16:34

Re: Internet-Explorer Einstellungen auslesen
 
ein auslesen aus der registry ist sicherlich (eingeschränkt) möglich. am saubersten ist es, die dafür vorgesehene funktion InternetQueryOption der wininet.dll zu nutzen. auf der MSDN-seite findest du auch alle auslesbaren werte.

beispielcode zum auslesen der proxy-einträge:

Delphi-Quellcode:
var
  ProxyInfo: PInternetProxyInfo;
  Len: LongWord;
begin
  Len := 4096;
  GetMem(ProxyInfo, Len);
  try
    if InternetQueryOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len)
then
      if ProxyInfo^.dwAccessType = INTERNET_OPEN_TYPE_PROXY then
      begin
        UseProxyServer := True;
        ProxyServer := ProxyInfo^.lpszProxy
      end
  finally
    FreeMem(ProxyInfo);
  end;
end;

DirkG 11. Mai 2005 07:52

Re: Internet-Explorer Einstellungen auslesen
 
Danke Wolke für die schnelle Antwort.

Ich habe mir die MSDN-Seite angesehen. Wenn ich es richtig interpretiere muss ich mir die Funktionen aber selber schreiben und alle möglichen Optionen (ohne DFÜ und ohne Proxy, mit DFÜ ohne Proxy, ohne DFÜ mit Proxy etc.) abfragen um sie dann zu einer allgemeinen Konfiguration zusammenfassen.

Am liebsten wäre mir gewesen, es gäbe eine globale Funktion ala "GetAllInternetOption" und "SetAllInternetOption". Oder gibt es auch eine solche Variante. Ich muss dazu sagen das ich bei den API bisher nicht viel gemacht habe.

Wenn jemand doch noch eine Lösung hat, wäre es toll wenn er sie mitteilen kann.

wolke 11. Mai 2005 15:07

Re: Internet-Explorer Einstellungen auslesen
 
ich denke nicht daß es sowas gibt. denkbar wäre allerdings, InternetQueryOption in eine schleife zu packen und mit einem sich erhöhenden Option Value aufzurufen.

marabu 11. Mai 2005 17:05

Re: Internet-Explorer Einstellungen auslesen
 
Zitat:

Zitat von wolke
beispielcode zum auslesen der proxy-einträge:
Delphi-Quellcode:
// ...
if InternetQueryOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len) then
// ...

Das Beispiel sieht nach IE4 aus.

Ab IE5 besser so. Durch die Verwendung von Optionslisten ist dann auch das Abfragen und Setzen von allen Parametern in einem Aufruf möglich.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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