FF-Management - FireFox.au3

  • Die _FFClick Funktion wird z.B. von _FFClickImage benutzt um den Klick auf den entsprechenden Link durchzuführen. Damit kannst du also auf alles klicken worauf es Sinn macht.

    Wobei _FFClick auch nicht wirklich was macht sondern ein JavaScript aufruft das den entsprechenden Maus-Event im Browser auslöst:

    Spoiler anzeigen

    also _FFClickImage sucht erst das Bild (auch wieder per JavaScript) bekommt den Index mit dem Link zurück und ruft dann das obige Script wieder über _FFClick auf.

  • Hi,
    ist es möglich, ohne jeden Tab einzel anzusprechen, nach einen
    Fenstertitel suchen zu lassen und diesen dann über den Index zu öffnen.

    Also, wenn ich z.B 3 Tabs habe und bei einem auf der PererZahlt HP bin,
    das mein Script dann diesen Tab öffnet und keinen anderen?

    greeting
    Frank

  • Du könntest über eine Schleife die Tab-Labels abfragen und dann entsprechend öffnen.

    gBrowser.mTabs.length (Anzahl der Tabs)
    gBrowser.mTabs[0].label (Label / Titel des 0ten-Tabs)


    Viele Grüße
    Stilgar

    Einmal editiert, zuletzt von Stilgar (30. August 2007 um 14:25)

  • Ok Danke, dachte schon es klappt nur über´s anklicken.

    Andere Frage, hat der Button der Alert Box ne ID?
    Dann könnte man diesen wie die MsgBox automatisch nach einer bestimmten Zeit schließen lassen.
    So funnzt es nicht alert.click()

    Code snippet:

    [autoit]


    ;Schließt den Browser in 5 Sekunden.
    _FFSetGet($Socket, 'setTimeout("self.close();", 5000)')
    ;-------------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    ;Gibt den markierten Text von der HP zurück.
    $Get_= _FFSetGet ($Socket, 'content.window.getSelection()')
    MsgBox(0, "Read:", $Get_)
    ;-------------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    ;Text in der Statusbar schreiben.
    $Text = '"Mein Text"'
    _FFSetGet ($Socket, "content.window.defaultStatus =" & $Text)
    ;-------------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    ;Schreibt Text in einer Seite.
    $Text = '"Willkommen"'
    _FFSetGet ($Socket, 'content.document.write(' & $Text &')')

    [/autoit][autoit][/autoit][autoit]

    oder auch writeIn
    ;-------------------------------------------------------------------------------

    [/autoit]


    Damit man Text in einer HP schreiben kann, ist es wichtig, das die Seite
    noch nicht vollständig geladen ist, da sonst der komplette Inhalt gelöscht wird.
    (Ist von FF im Moment noch nicht vorgesehen)

    Einmal editiert, zuletzt von thunder-man (30. August 2007 um 15:19)

  • Du kannst zwar keinen Text richtig reinschreiben, aber ändern. Wähle z.B. ein Element per Name oder ID an und ändere die Eigenschaft textContent z.B.:

    document.getElementById("title").textContent = "neuer title"

    Oder lies die ganzen Quelltext, ändere Ihn und schick ihn wieder zurück:
    content.document.documentElement.innerHTML = $htmlQuelltext


    Für den Alert habe ich noch keinerlei Eigenschaften oder Methoden entdeckt.

  • lol, ja so könnte man die HP abändern, oder ich lade mit die Seite
    direkt im Kompozer ...

    Ich dachte eher daran, meinen eigenen Text dynamisch in der Seite einzufügen.
    Was halt nur geht, bevor die Seite komplett in den Browser geladen wurde.

    Wie das rein technisch gehen soll, weis ich auch noch nicht. Vielleicht bei 5% oder so, den Content einfügen und dann die Seite fertig laden lassen...

    Grüße
    Frank

  • gBrowser.mTabs.length (Anzahl der Tabs)
    gBrowser.mTabs[0].label (Label / Titel des 0ten-Tabs)

    Das auslesen des Titels klappt damit sehr gut, allerdings ergibt sich für mein Vorhaben ein Problem.

    Verbinde ich mich mit FFStart() z.B.
    $Socket = _FFStart("about:blank", "", Not ProcessExists("FireFox.exe"))
    If $Socket = -1 Then Exit

    so startet der Browser mit about:blank, oder einer Seite meiner Wahl.
    Ich würde mich aber gerne verbinden, auslesen ob es meine gesuchte Seite schon gibt und falls vorhanden, diesen Tab öffen, ansonsten einen neuen
    mit meiner Seite öffnen.

    Zu einen Browser connecten hilft mir auch nicht weiter, da dieser ja ohne
    MozRepl gestartet worden sein kann.

    Was gibt es denn da noch für eine Option?

    so long
    Frank

  • Hi,
    eigendlich starte ich meinen Browser ohne aktiven MozRepl.

    Oft, kann ich daher nicht connecten, wenn ich "PeterZahlt FF" starte
    Da ich aber nicht immer eine 2. Instanz von meinem Browser starten will,
    stellt sich die frage, ob man MozRepl nachträglich starten kann.
    (Nicht nur manuell über Extras / MozRepl sondern per Script)

    Falls nicht:
    Ich habe das jetzt so gelöst, das wenn der Firefox läuft geprüft wird
    ob MozRepl aktiv ist, oder nicht.

    Wenn ja, dann wird zum Browser connectet oder ansonsten ein
    weiterer Browser geöffnet.

    Kann mal Bitte jemand schauen, ob die Funktion so richtig ist, weil ich
    nicht genau weiß ob ich noch TCPCloseSocket( $Socket ) einbauen muß, oder ob das schon TCPShutDown() erledigt.

    [autoit]

    ;-----------------------------------------
    If ProcessExists("firefox.exe") Then
    TCPStartup(); start TCP services
    $Socket_T = TCPConnect($IP, $Port)

    [/autoit][autoit][/autoit][autoit]

    If $Socket_T = -1 Then
    TCPShutdown() ; stop TCP services
    _StartNo() ; _FFStart
    Else
    ;MsgBox(16, "Socket", $Socket_T)
    TCPShutdown() ; stop TCP services
    _StartYes() ; _FFConnect
    EndIf
    Else
    _StartNo()
    EndIf
    ;-----------------------------------------

    [/autoit]

    so long
    Frank

  • Nein MozRepl nachträglich automatisch starten geht leider nicht, da man ja ohne MozRepol auch keinen Zugriff auf FF hat :D

    Ich werde deine Idee noch in die _FFStart mit einbauen:
    Nur wenn keine Verbindung zu einem Browser möglich ist eine neue Instanz aufmachen.

    Grüße
    Thorsten

  • Stilgar
    leider habe ich auch nichts dergleichen gefunden X(
    MorRepl ist doch ein Server, wo versteckt der sich denn das man den nicht manuell mit nem Port starten kann?

    Habe nur den switch -repl gefunden, was aber dann ja auch ne neue Instanz
    öffnet.
    thunderbird.exe -repl oder halt firefox.exe -repl.

    Man könnte alt + x
    alt + r
    alt + s
    senden, aber das ist irgendwie blöde.

    Zitat

    Ich werde deine Idee noch in die _FFStart mit einbauen:


    THX hört sich gut an.

    ============
    MorRepl für Thunderbird.
    Was könnte man damit machen?
    Malis katalogisieren?

    so long
    Frank

    Einmal editiert, zuletzt von thunder-man (31. August 2007 um 18:34)

  • Zitat

    Original von thunder-man

    Man könnte alt + x
    alt + r
    alt + s
    senden, aber das ist irgendwie blöde.

    Funzt bei mir auch übrigends ned ^__^
    passiert nix wenn ich ALT+X drücke

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • Blubkuh

    Oh, das wundert mich schon, das mit den Tastenkombinationen nichts
    passiert.

    Ist Deine Menüleiste hidden?

    Das Menü kann man doch über die unterstrichenen Buchstaben
    ansprechen.
    Und für Extras wäre das Alt +x (Alt weiter festhalten)

    dann MozRepl Alt +r (Alt weiter festhalten)
    und noch Start Alt +S

    ist das bei Dir anders?

    Edit:
    OK, das 3. (Alt+S) funnzt nicht, dann springt er auf "Activate on startup Drückt man halt Enter


    Diese tasten könnte man dann z.B. mit Send ( "keys" [, flag] ) senden ...

    Grüße
    Frank

    Einmal editiert, zuletzt von thunder-man (1. September 2007 um 00:35)

  • hmm vorhin gings ned .. jetzt gehts ...

    das 3. kann man durch alt+shift+S realisieren.

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • Stilgar

    Hey, klasse wieder neue Funktionen und "Input" für mich...

    Die JavaScript Funktion ist nun schön übesichtlich.
    $sJavaScript = 'function FF__SimulateClick(oObject)'
    $sJavaScript &= '{'
    usw.
    Ich benutze es natürlich auch für MsgBoxen und um es leichter zu haben,
    die Txt 2 au3

    Habe noch eine Anregung für einen weiteren Startmodi der _FFStart
    gleichzeitiges starten von mehreren Profilen. (SET MOZ_NO_REMOTE=1)

    Firefox öffnet standardmäßig eine neue FF Instanz mit dem Profil des schon laufenden Prozesses.

    Soll bedeuten wenn ich ein anderes Profil starten will, z.B. __FFStartProcess("Test") bringt das nicht´s, wenn schon Profil xy gestartet wurde.

    So geht´s:

    [autoit]


    $sFFExe = StringTrimRight($sFFExe, 12)
    Run(@ComSpec & " /c " & 'SET MOZ_NO_REMOTE=1 &' & 'firefox.exe ' & '-repl ' & $sProfile, $sFFExe, @SW_HIDE)

    [/autoit]


    Grüße
    Frank

    Einmal editiert, zuletzt von thunder-man (2. September 2007 um 15:52)

  • @thunder-man:

    Die JavaScript Funktionen habe ich nur vorübergehend so gemacht. So ein Einzeiler ist immer recht schlecht zu programmieren :D

    Diese "Txt 2 au3" ist mir neu, ich habe halt jEdit gesagt er soll am Angang und der Zeile was ranhängen - fertig.

    Mehrere Profile starten? Bis vor ein Tagen habe ich gar nicht gewußt, das jemand die überhaupt verwendet - ich werd sehen ob ich das noch irgendwo einbauen kann.

    Diese Hilfsfunktionen mit den zwei Tiefstrichen würde ich nicht direkt verwenden, die sind alle nicht unbedingt zur normalen Anwendung gedacht, dafür gibts auch keinen Support ;)

    Grüße
    Thorsten

  • Stilgar

    Aha, jEdit lol. Ja das ist ein interessantes Projekt.
    Ist mir im Moment aber zuviel Arbeit es zum laufen zu bekommen.
    Bin es halt gewohnt son´e Art Install and Play zu haben. ;)

    2. Profil
    Wie ich festgestellt habe, ist nicht jedes Profil mit MozRepl lauffähig.
    Ich nutze daher mein default und ein weiteres für die FF, so habe ich
    halt kaum Probleme ...

    MOZ_NO_REMOTE=1

    Zitat

    Diese Hilfsfunktionen mit den zwei Tiefstrichen würde ich nicht direkt verwenden,

    Das wundert mich schon, weil ja im Mozilla Developer Center auch was von steht.

    Man kann diese 2 Zeilen auch direkt in einer Batch Datei verwenden...

    set MOZ_NO_REMOTE=1
    start "" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -P dev

    Grüße
    Frank

  • Was ist denn an den jEdit Sachen viel zu installieren? Zwei Verzeichnisse kopieren, ctags herunterladen, Pfad eingeben, catalog ergänzen - fertig :D

    Und ist dann sauber installiert, im Gegensatz zu SciTe der mir standardmäßig mein ganzes Homeverzeichnis mit irgendwelchen Dateien zumüllt :( und zig Dateien doppelt und dreifach vorhanden sind weil sonst die ganzen Zusatzprogramme nicht richtig funktionieren :rolleyes:


    Oh ein Mißverständnis.
    Mit dem
    "Hilfsfunktionen mit den zwei Tiefstrichen würde ich nicht direkt verwenden,"

    meinte ich die __FF... Funktionen aus der FF.au3.


    Grüße
    Thorsten

    Einmal editiert, zuletzt von Stilgar (2. September 2007 um 20:26)

  • Hatte von jEdit nur die schönen Bilder gesehen und die ersten Threads
    gelesen, das es schwer zu installieren und konfigurieren ist, lol.
    Und da hatte ich keine Lust mehr.

    Obwohl ich sofort dachte, wäre schön, wenn man das Fenster mit den "Grippys" wie sie Netscape hatte (Oder auch der neue Schwishmax, oder
    Ulead Photo Impact) verkleinern oder vergrößern könnte. (Für nicht benötigte Tools oder so...) Na jo lol.
    [Blockierte Grafik: http://img365.imageshack.us/img365/6971/grippybz4.jpg]

    Hilfsfunktionen in der FF.
    War eh nur für mich test weise, sonst müsste ich ja auch noch eine modifizierte FF.au3 mit meinem Script weitergeben.

    so long
    Frank

    Einmal editiert, zuletzt von thunder-man (2. September 2007 um 20:54)

  • Oh klasse, habe gerade die neue FF.au3 V0.2.7.9beta gesehen.
    Darf man schon ... lol

    In diesem Sinne.

    Greetings
    Frank


    Edit:
    Auch bei einem hidden Prozess startet der Browser bei mir immer sichtbar!??

    [autoit]

    $Socket = _FFStart("http://www.autoit.de/index.php", "", 1, True)

    [/autoit]

    3 Mal editiert, zuletzt von thunder-man (16. September 2007 um 01:07)

  • V0.2.7.9 bzw. mittlerweile V0.2.8.0 sind ohne Garantie - ich habe die neuen Funktionen selber noch nicht probiert.

    Das mit dem hidden Prozess hat schon mal geklappt, aber ich schau es mir noch mal an.

    Grüße
    Thorsten