"F9" an mehrere Firefox Fenster senden?

  • Hallo! :)

    Zunächst: Ich bin neu bei AutoIT, also habt Gnade :)

    Ich will eine bestimmte Funktionstaste, z.b. F9 an mehrere (!) Firefox Fenster senden. Bisher habe ich mit

    Code
    ControlSend("[Class:MozillaUIWindowClass]", "", "MozillaWindowClass1", "{F9}")

    immer nur zum im Moment aktiven Fenster F9 senden können. Wie mache ich das mit mehreren Firefox Fenstern? Mit MozillaWindowClass1, 2, 3, etc hab ich keinen Erfolg.

    Vielen Dank!! :)

  • Der erste Parameter von Controlsend muss einfach mit dem jeweiligen Fensterhandle übergeben werden.
    Den bekommst du mit Wingethandle() heraus. Falls du die FF.au3 benutzt, dann guck in die zugehörige
    Hilfedatei, denn dafür gibt es eine Funktion.
    PS: Ich würde dir sowieso empfehlen mit der FF.au3 zu arbeiten, sofern du mehrere Aktionen automatisieren willst.

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Vielen Dank für deine Antwort. :)

    Es handelt sich um 4 gleiche (gleiche Adresse) FF Fenster, sind da die Fensterhandle dann gleich? Wie würdest du das lösen?

    Die FF.au3 hab ich gesehen, da ich allerdings nur eine F-Taste übergeben will, dachte ich, dass das auch ohne FF.au3 auskomme. Irre ich mich da? Ich hab auch keine ControlSend in der Art gefunden...

  • Hier ist ein Beispiel mit dem "alle" Firefox angesprochen werden können.
    (ggf. muss es angepasst werden, falls mehrere Fenster "Mozilla" enthalten, oder ähnliches)

    Spoiler anzeigen
    [autoit]

    Opt("wintitlematchmode",2)
    $var=WinList("Mozilla"); alle Fenster mit "Mozilla" im Titel werden aufgelistet
    For $i = 1 to $var[0][0]
    ; Es werden nur die sichtbaren Fenster angezeigt
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then
    WinActivate($var[$i][1])
    WinWaitActive($var[$i][1])
    MsgBox(0, "Details", "Title=" & $var[$i][0] & @LF & "Handle=" & $var[$i][1],5)
    ControlSend($var[$i][1],"","MozillaWindowClass2","{F5}"); sendet F5 (Aktualisieren)
    Sleep(1000)
    MsgBox(0,"Info","F5 wurde gesendet",1)
    EndIf
    Next

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

    MsgBox(0,"Abgeschlossen","Alle Fenster wurden aufgerufen!",5)

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

    Func IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!