Allg. Proxy vom IE6 auf FF3 per Script, RegFile oä.

C0q_Rouge

Grand Admiral Special
Mitglied seit
30.12.2005
Beiträge
2.278
Renomée
14
Geht das? Wenn ja, wie?

Vielen Dank!

(ich möchte nicht erst den FF öffnen müssen)
 
Kannst du dein Vorhaben mal etwas ausführen? Im Moment peile ich nicht, was du willst.

MfG Dalai
 
habe mich, da ich ungeduldig war :o, noch woanders erkundigt:
http://kb.mozillazine.org/Network.proxy.autoconfig_url

das war die Antwort

mal schauen.

Ich muss im FF ein Proxyscript per URL einstellen. Im IE geht das zB sehr einfach über die Registry. Nun wusste, weiß ich immer noch nicht, da link noch nicht probiert, wie es im FF geht.

Nun alles klar?
.
EDIT :
.

Habe mir jetzt den Link angeschaut, aber da steht nichts zu meiner Frage oder ich bin blind :(
 
Also wenn ich das richtig verstehe willst du automatisiert einen Proxy im Firefox eintragen. Richtig? Wenn ja: das steht in der prefs.js in deinem FF-Profil.

MfG Dalai
 
Also wenn ich das richtig verstehe willst du automatisiert einen Proxy im Firefox eintragen. Richtig? Wenn ja: das steht in der prefs.js in deinem FF-Profil.

MfG Dalai


Nur da?

ist mit
Code:
esbpref.js
in
Code:
C:\Documents and Settings\USER\Application Data\Mozilla\Firefox\Profiles\gcvocch8.default\extensions\{USER HASH CODE}\defaults\preferences
gemeint?

Wie kann ich das per Script oä. editieren?

Der Pfad müsst auch noch allg. gültig sein (ala %SystemRoot%). Ist das realisierbar?

Vielen Dank!!!
 
Nein, die prefs.js liegt in "%AppData%\Mozilla\Firefox\Profiles\<profilname>\prefs.js"
An den Profilnamen kommst du über "%AppData%\Mozilla\Firefox\profiles.ini"

C0q_Rouge schrieb:
Wie kann ich das per Script oä. editieren?
Ich habe noch kein Programm gefunden, mit der man die direkt bearbeiten kann. Evtl. schreib ich mal so eins, weil ich es auch schon mehrfach gebraucht hätte. In der Zwischenzeit würde ich einfach ein Programm wie sed oder sowas benutzen, um Strings darin zu ersetzen.

MfG Dalai
 
arg das dumme S

OK dann schau ich mal, dass ich das hin bekomme.. Danke!!
 
Wie ist das eigentlich? Gibt es eine prefs pro PC oder pro User im jeweiligen Default Ordner?

Und dann frage ich jetzt einfach mal ganz dreist, da ich sonst eine ganze weile am suchen wäre:

ich bräuchte also einen Befehl, der mir den Profilnamen ausliest und in einer Variable packt

und dann einen der diese Variable benutzt um in der prefs 3 Zeilen einzufügen



Bitte sagen, wenn ich hier zu viel verlange, aber ich hoffe einfach, dass einer gerade Zeit und Lust hat mir zu helfen. Vielen Dank!!!
 
C0q_Rouge schrieb:
Gibt es eine prefs pro PC oder pro User im jeweiligen Default Ordner?
Mindestens eine pro User. Du kannst auch mehrere Firefox-Profile für einen Windows-User erstellen (habe ich gestern gebraucht, um eine Seite zu testen).

C0q_Rouge schrieb:
ich bräuchte also einen Befehl, der mir den Profilnamen ausliest und in einer Variable packt
Das geht mit AutoIt recht einfach: IniRead("filename", "section", "key", "default"). Dann kannst du auch gleich das Schreiben der Zeilen mit AutoIt machen. Ich werd mal was zusammenschreiben und mich dann nochmal melden. Du kannst dich derweil auf der HP von AutoIt umschauen und dich reinfuchsen.

MfG Dalai
.
EDIT :
.

So, dies hab ich gebastelt:
Code:
global $zeilen[20]

;------------------------------------------------------------------------------
;------------------------------------------------------------------------------

$zeilen[1] = "Zeile mit dem 1. gesuchten Wert"
$zeilen[2] = "Zeile mit dem 2. gesuchten Wert"

;------------------------------------------------------------------------------
;------------------------------------------------------------------------------

global $firefoxdir = @AppDataDir & "\Mozilla\Firefox"

global $profiledir = IniRead($firefoxdir & "\profiles.ini", "Profile0", "Path", "")
global $prefs_content = "", $content_changed

if $profiledir <> "" then
    local $profiledir = StringReplace($profiledir, "/", "\")
    local $prefs = $firefoxdir & "\" & $profiledir & "\prefs.js"
    for $i = 1 to UBound($zeilen) -1
        $content_changed = 0
        ;MsgBox(0, "", $zeilen[$i])
        $datei = FileOpen($prefs, 0)
        if $zeilen[$i] <> "" then SUCHEN_ERSETZEN($prefs, $zeilen[$i])
        FileClose($datei)

        if $content_changed then
            $datei = FileOpen($prefs, 2)
            FileWrite($datei, $prefs_content)
            FileClose($datei)
        EndIf
    Next
EndIf


Func SUCHEN_ERSETZEN($datei, $gesuchte_zeile)
    $prefs_content = FileRead($datei)
    if StringInStr($prefs_content, $gesuchte_zeile) then
        ; Hier müsste man die Zeile mit regulären Ausdrücken suchen
        ; und durch den gewünschten Wert ersetzen.
        ; Alternativ kann man auch die gefundene Zeile löschen und die
        ; neue hinten dranhängen.
        content_changed = 1
    EndIf
EndFunc
Die Funktion zum Ersetzen benötigt noch etwas Arbeit, aber du willst ja auch noch was machen, nicht ;D? Ich denke da an die Funktionen StringReplace, StringRegExpReplace u. dgl.

MfG Dalai
 
ich bin eigentlich der Meinung, dass man nur Zeilen hinzufügen muss. Habe ich eben getestet.

Bei einem neuen User steht in der Datei einfach kein entsprechender Parameter und es reicht die gewünschten Parameter am Ende der Datei einzufügen.

Aber auf jeden Fall vielen Dank!! Jetzt muss ich es nur noch verstehen :D
 
C0q_Rouge schrieb:
ich bin eigentlich der Meinung, dass man nur Zeilen hinzufügen muss. Habe ich eben getestet.
Nein. Das Problem ist, dass Werte, die den Default-Werten entsprechen, entfernt werden. D.h. also, dass nur vom Standard abweichende Dinger in der prefs.js landen. Was machst du nun also, wenn schon ein Proxy eingetragen ist? Wenn du es einfach nur anhängst, hast du garantiert kein definiertes Verhalten mehr.

Aber wenn du sicherstellst, dass kein Proxy gesetzt ist, kannst du mit der Funktion FileWriteLine($datei, $zeilen[$i]) die gewünschten Zeilen hinzufügen. Das heißt aber auch, dass du sicherstellen musst, dass das Skript nicht mehrfach hintereinander auf dieselbe Datei angewendet wird.

C0q_Rouge schrieb:
Jetzt muss ich es nur noch verstehen :D
Im AutoIt-Paket ist eine sehr gute Dokumentation in Form einer CHM-Hilfe. Notfalls kann ich helfen. Was verstehst du denn nicht?

MfG Dalai
 
Aber wenn du sicherstellst, dass kein Proxy gesetzt ist
Da es immer neue User sind, die sich dann das erste Mal anmelden und dann den Befehl 1x manuell ausführen (bei neuen Usern gibt es ja leider kein RunOnce) Sollte das klappen

Notfalls kann ich helfen. Was verstehst du denn nicht?MfG Dalai
Ich muss mir das erst einmal in Ruhe anschauen und dafür Zeit haben. Aber zur Zeit stelle ich eh den Sinn des ganzen in Frage :( Weil ich nicht weiß wie ich das für neue User als RunOnce realisieren soll ???

Trotzdem finde ich die ganze Fragestellung dermaßen interessant, dass ich mich auf jeden Fall damit beschäftigen werde und dir nochmal Danken möchte!! *great*
 
C0q_Rouge schrieb:
Weil ich nicht weiß wie ich das für neue User als RunOnce realisieren soll ???
Das geht recht einfach: Registry-Eintrag im HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Runonce. Dort trägst du dein Skript ein. Sollte das nicht funktionieren (den Pfad gibt's auf meinem XP nicht, dafür aber auf meinem Win2k Server), kannst du das Skript auch in HKLM\Software\Microsoft\Windows\CurrentVersion\Run eintragen, musst dann aber die Existenz einer Datei im %UserProfile% prüfen. Existiert die Datei nicht, führst du den Kram aus, und erzeugst die Datei. Existiert die Datei hingegen, beendest du das Skript einfach (damit es nur einmalig läuft). Alternativ kann man das auch im Startmenü-Autostart eintragen.

MfG Dalai
 
Zurück
Oben Unten