AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TMozillaBrowser und Proxy
Thema durchsuchen
Ansicht
Themen-Optionen

TMozillaBrowser und Proxy

Offene Frage von "smt"
Ein Thema von smt · begonnen am 29. Okt 2007 · letzter Beitrag vom 8. Aug 2008
Antwort Antwort
smt

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

TMozillaBrowser und Proxy

  Alt 29. Okt 2007, 14:51
Hallo,

weiss zufälligerweise jemand, wie ich die TMozillaBrowser Komponente dazu bringe, daß Sie einen Proxy-Server benutzt?

Vielen Danke für alle Hinweise.

- Sascha -
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TMozillaBrowser und Proxy

  Alt 29. Okt 2007, 15:50
Herzlich willkommen in der Delphi-PRAXiS, Sascha.

Hast du diesen Absatz auf der HomePage des Controls gesehen?

Zitat:
...
How do I change preferences for the control, e.g. the proxy settings?

Edit the control profile's prefs.js and change the settings to those that you want.

Alternatively open about:config and configure the settings from there. You could also create a fresh profile in Mozilla / Firebird, change the settings from the preferences dialog and copy resultant the prefs.js over into the control's profile.
...
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
smt

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

Re: TMozillaBrowser und Proxy

  Alt 30. Okt 2007, 11:46
Hallo marabu,

danke für den Hinweis.
Nein, diesen Text hab ich noch nicht gelesen gehabt - aber zumindest mal über die about:cofig Funktion geht es NICHT. Ich bekomme die Config zwar angezeigt und kann sie auch ändern, aber er speichert das nicht ab. Grundsätzlich kann ich es zwar in der Prefs.js ablegen, aber die Frage ist ja: Wo finde ich die - also programmtechnisch? Gibts da von Mozilla eine Funktion, die mir sagt, wo er danach sucht bzw. wo seine prefs.js liegt?
Sie liegt zwar in Dokumente/Einstellungen/Anwendungsdaten, etc. aber dann kommt irgendwas mit Profilen, wo ich nicht genau weiss, wie der Mozilla diese anlegt bzw. danach sucht.

Vielen Dank

- Sascha -
  Mit Zitat antworten Zitat
smt

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

Re: TMozillaBrowser und Proxy

  Alt 31. Okt 2007, 07:51
Habs hinbekommen...

Mit einer user.js funktioniert es. Der TMozillaBrowser legt auch ein entsprechenes Verzeichnis unter Anwendungsdaten an. Allerdings gibt es im Unterschied zum Firfox keine profiles.ini wo die Profilnamen drin stehen. Aber es gibt ja die tolle Funktion Findfirst wo man sich das entsprechende Verzeichnis heraussuchen kann. Ist zwar nicht die sauberste Lösung, aber sie funktioniert.

VG Sascha
  Mit Zitat antworten Zitat
mOfl

Registriert seit: 1. Jun 2006
11 Beiträge
 
#5

Re: TMozillaBrowser und Proxy

  Alt 8. Aug 2008, 00:29
Aloha,

ich push den Beitrag mal, weil ich eben das gleiche Problem hab. Wie/wo genau muss man eine .js-Datei anlegen oder ändern? Wenn man die selber anlegen muss, was für Befehle gibts da? Oder einfacher: Gibt es einfach eine Seite, wo das erklärt wird? Auf der angesprochenen Seite vom Autor der Control finde ich nämlich nicht einmal den zitierten Ausschnitt.

Ich würde die kleine Komponente nämlich gerne so gestalten, dass sie zum einen über einen Proxy-Server läuft, zum anderen keine Bilder anzeigt und schließlich auch keine Cookies akzeptiert.

Grüße
Dani
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: TMozillaBrowser und Proxy

  Alt 8. Aug 2008, 07:51
Moin Dani,

nach meiner Beobachtung liest das Mozilla ActiveX Control die Datei prefs.js aus dem Ordner %INST_PATH%\defaults\pref\ ein, wobei %INST_PATH% das Installationsverzeichnis des Controls ist. Ich würde die Datei prefs.js von FireFox an diese Stelle kopieren. Alternativ kann an der gleichen Stelle auch die Datei user.js angelegt werden. Gelesen werden beide Dateien, aber es gibt gewisse Vorrangregeln: user_prefs() überschreiben prefs(), aber user_prefs() aus prefs.js haben Vorrang vor solchen in user.js, wenn ich mich nicht irre. Die Syntax ist die gleiche wie bei prefs.js, eine Beschreibung der Einträge findest du z.B. bei mozillaZine.

Freundliche Grüße
  Mit Zitat antworten Zitat
smt

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

Re: TMozillaBrowser und Proxy

  Alt 8. Aug 2008, 07:57
Also ich hab das folgendermassen gelöst:


Delphi-Quellcode:
function GetProxyInformation:string;
var
  ProxyInfo: PInternetProxyInfo;
  Len: LongWord;
begin
  Result := '';
  Len := 4096;
  GetMem(ProxyInfo, Len);
  try
    if InternetQueryOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len) then
      if ProxyInfo^.dwAccessType = INTERNET_OPEN_TYPE_PROXY then
      begin
        Result := ProxyInfo^.lpszProxy
      end;
  finally
    FreeMem(ProxyInfo);
  end;
end;

{**************************************************************************
* NAME:    GetProxyServer
* DESC:    Proxy-Server Einstellungen abfragen
* PARAMS:  protocol => z.B. 'http' oder 'ftp'
* RESULT:  [-]
* CREATED: 08-04-2004/shmia
*************************************************************************}

procedure GetProxyServer(protocol:string; var ProxyServer:string; var ProxyPort:Integer);
var
  i : Integer;
  proxyinfo, ps : string;
begin
  ProxyServer := '';
  ProxyPort := 0;

  proxyinfo := GetProxyInformation;
  if proxyinfo = 'then
    Exit;

  protocol := protocol+'=';

  i := Pos(protocol, proxyinfo);
  if i > 0 then
  begin
    Delete(proxyinfo, 1, i+Length(protocol));
    i := Pos(';', ProxyServer);
    if i > 0 then
      proxyinfo := Copy(proxyinfo, 1, i-1);
  end;

  i := Pos(':', proxyinfo);
  if i > 0 then
  begin
    ProxyPort := StrToIntDef(Copy(proxyinfo, i+1, Length(proxyinfo)-i), 0);
    ProxyServer := Copy(proxyinfo, 1, i-1)
  end
end;
und dann irgendwo später:

Delphi-Quellcode:
 with TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;
      OpenKey('\Software\Microsoft\Windows\CurrentVersion\' +
        'Explorer\Shell Folders', True);
        speicher_pfad:=ReadString('AppData');
    finally
      CloseKey;
      Free;
    end;

    getproxyserver('http',server,port);

    speicher_pfad :=speicher_pfad + '\MozillaControl\profiles\MozillaControl\';
    doserror:=Findfirst(speicher_pfad + '*.*',faDirectory,dt);
    WHILE doserror = 0 DO BEGIN
       IF (dt.name <> '.') and (dt.name <> '..') Then speicher_pfad:=speicher_pfad + dt.Name + '\';
       doserror:=Findnext(dt);
    END;

    // Hier die User-Prefs anlegen
    IF server <> 'THEN BEGIN
       ASSIGNFILE(datei,speicher_pfad + 'user.js');
       REWRITE(datei);
       Writeln(datei,'user_pref("network.proxy.http", "' + server + '");');
       Writeln(datei,'user_pref("network.proxy.http_port", ' + INTTOSTR(port) + ');');
       Writeln(datei,'user_pref("network.proxy.type", 1);');
       CLOSEFILE(datei);
    END ELSE IF FileExists(speicher_pfad + 'user.js') THEN deletefile(speicher_pfad + 'user.js');
also so hab ich es hinbekommen... wie gesagt, nicht besonders schön, aber es funktioniert.
Natürlich ist das einfache weglöschen der user.js wenn kein proxy mehr eingetragen ist nicht die feine englische art. Für die Anwendung, für die ich es benötigt hatte, reicht es aber aus. Deshalb diese Quick und Dirty Methode. Die Proxy-Einstellungen holt sich das Programm im übrigen aus den IE-Proxy Einstellungen. Aber das kann man ja machen wie man will.


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 06:17 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