![]() |
TMozillaBrowser und Proxy
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 - |
Re: TMozillaBrowser und Proxy
Herzlich willkommen in der Delphi-PRAXiS, Sascha.
Hast du diesen Absatz auf der HomePage des Controls gesehen? Zitat:
|
Re: TMozillaBrowser und Proxy
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 - |
Re: TMozillaBrowser und Proxy
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 |
Re: TMozillaBrowser und Proxy
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 |
Re: TMozillaBrowser und Proxy
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 ![]() Freundliche Grüße |
Re: TMozillaBrowser und Proxy
Also ich hab das folgendermassen gelöst:
Delphi-Quellcode:
und dann irgendwo später:
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;
Delphi-Quellcode:
also so hab ich es hinbekommen... wie gesagt, nicht besonders schön, aber es funktioniert.
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'); 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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