FF-Fenster verstecken und deaktivieren?

  • Hallo Leute, hier mein Problem:
    Ich starte FF im verstecktem Modus aber sobald ich auf einen Link klicke (FF natürlich als Standartbrowser) kommt das Fenster wieder aus seinem "Versteck".
    Außerdem wird ein neuer Tab geöffnet.
    Damit ihr euch das ganze besser Vorstellen zu können hier ein Script.
    (Das script muss der einzig laufende FF-Prozess sein. Sprich alle FF-Fenster schließen und dann Script starten)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <FF.au3>
    #include "_FF_YouTube_API.au3"

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

    Opt('GUIOnEventMode', 1)

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

    Global $iOld = -99,$slider,$itime,$iVolume,$currenttime,$aMouseInfo,$max,$hide = True

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

    $Form1 = GUICreate("Youtube Controls", 213, 101, 990, 30, -1, BitOR($WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE, $WS_EX_TOPMOST, $WS_EX_APPWINDOW))
    GUISetOnEvent(-3, '_Exit')
    $replay = GUICtrlCreateButton("Replay",50,80,100,20)
    GUICtrlSetOnEvent(-1,"_ytplay")
    GUICtrlSetState($replay,$GUI_HIDE)
    $slider = GUICtrlCreateSlider(10,20,130,20)
    GUICtrlSetData($slider,0)
    $slabel1 = GUICtrlCreateLabel("0.00",150,20,50,20)
    $slider2 = GUICtrlCreateSlider(10,50,130,20)
    GUICtrlSetData($slider2,50)
    $slabel2 = GUICtrlCreateLabel("Volume",150,50,50,20)
    GUISetState(@SW_SHOW)

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

    _FFStart("http://www.youtube.com/watch?v=YdXJCtg-aPY", "default", 1, $hide)

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

    $max= _FF_YT("getDuration")

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

    GUICtrlSetLimit ($slider,$max)
    GUICtrlSetOnEvent ($slider,"_seek")
    GUICtrlSetLimit ($slider2,"100")

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

    _FF_YT("setVolume",50)

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

    While Sleep(100)

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

    $aMouseInfo = GUIGetCursorInfo()
    $currenttime = _FF_YT("getCurrentTime")
    $iVolume = GUICtrlRead($slider2)
    $itime= GUICtrlRead($slider)

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

    If $itime>$max-2 Then
    GUICtrlSetState($replay,$GUI_SHOW)
    EndIf

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

    If $iOld <> $iVolume Then
    _FF_YT("setVolume",$iVolume)
    GUICtrlSetData($slabel2, $iVolume)
    EndIf

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

    GUICtrlSetData($slabel1,$currenttime)
    If not IsArray($aMouseInfo) Then
    GUICtrlSetData($slider, $currenttime)
    ContinueLoop
    EndIf

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

    If not ($aMouseInfo[4] = $slider) Then GUICtrlSetData($slider,$currenttime)

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

    WEnd

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

    Func _Exit()
    _FFQuit()
    Exit
    EndFunc

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

    Func _seek()
    _FF_YT("seekTo",$itime)
    EndFunc

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

    Func _ytplay()
    GUICtrlSetState($replay,$GUI_HIDE)
    _FF_YT("playvideo")
    EndFunc

    [/autoit]

    Link zum hervorholen des versteckten Fensters

    Noch ein Problem , wenn das Video am Ende ist soll der Button erscheinen , das klappt auch soweit aber beim Aufrufen von _ytplay()
    sollte der Button wieder verschwinden das tut er aber nicht??
    Solltet ihr insgesamt noch Verbesserungsvorschläge für das Script haben immer her damit ;)

    Hoffe ihr könnt mir helfen :)

  • Ach sorry ich vergaß , das script muss der einzig laufende FF-Prozess sein. Sprich alle FF-Fenster schließen und dann erst Script starten.

    Edit: Ok das ist jetzt komisch aber anscheinend kommt es nicht immer aus dem "Versteck" , aber ein neuer tab im versteckten fenster wird trotzdem immer
    geöffnet und das ist ja das Problem.(2 lieder laufen also im versteckten ff-fenster)
    Man müsste das versteckte Fenster i-wie für weitere Tabs, usw... deaktivieren ?(

    MfG hellboy

    [autoit]

    Do
    _help($user)
    Until $questions = 0

    [/autoit]

    Meine Werke:
    Ste`s Web-Radio

    2 Mal editiert, zuletzt von hellboy3 (17. Juli 2010 um 19:50)

  • schade , naja der versuch zählt , ist halt blöd ich hab schon mit _tabexists versucht und sowas aber mir fehlt die Idee
    wie ich dieses Versteckte Fenster für weitere tabs deaktivieren soll :(

    MfG hellboy

    [autoit]

    Do
    _help($user)
    Until $questions = 0

    [/autoit]

    Meine Werke:
    Ste`s Web-Radio

  • Hallo,

    wann/warum gehen denn überhaupt neue Tabs in dem Fenster auf?

    Wenn du die Verbindung von anderen Slripten abkoppeln möchtest, dann gib bei _FFStart einfach eine andere Port-Nummer an.

    Dann zum Programm:
    Du mußt Dir die alte Lautstärke schon "merken", sonst wird die ständig an FireFox gesendet, obwohl sie sich nicht ändert.

    Spoiler anzeigen
    [autoit]

    If $iOld <> $iVolume Then
    _FF_YT("setVolume",$iVolume)
    GUICtrlSetData($slabel2, $iVolume)
    $iOld = $iVolume
    EndIf

    [/autoit]

    Grüße
    Stilgar

  • Danke für den Tipp hatte ich vergessen ;)

    Ein Tab wird immer dann geöffnet wenn das Script läuft und kein anderes FF-Fenster vorhanden ist , wenn man dann auf einen Link klickt dann öffnet sich der Link halt im versteckten
    FF-Fenster des Scripts :(

    Edit: Achso , hmm Port , ist immer so ne Sache , auf was soll ich den $Port stellen damit das FF des Scriptes abgekoppelt von den anderen ist und
    gleichzeitig bei den meisten frei ist ?

    MfG hellboy

    [autoit]

    Do
    _help($user)
    Until $questions = 0

    [/autoit]

    Meine Werke:
    Ste`s Web-Radio

    2 Mal editiert, zuletzt von hellboy3 (19. Juli 2010 um 21:47)

  • Wo klickst Du denn auf einen Link, wenn kein anderes FF-Fenster offen ist ?(

    Welchen Port? Nun einfach eine andere Nummer als den Default-Wert (4242), das dürfte auf einem normalen Anwender-PC nicht viel Probleme bereiten.
    Bei welchen Anderen soll der denn für was frei sein? Über den gleichen Port können sich mehrere Scripte mit MozRepl verbinden, es wird jeweils ein neuer Socket dabei verwendet.

  • Zitat

    Wo klickst Du denn auf einen Link, wenn kein anderes FF-Fenster offen ist ?(

    In einem Chat z.B.
    Ich versuchs mal und melde mich dann

    Edit: Funzt leider nicht mit anderem Port

    MfG hellboy

    [autoit]

    Do
    _help($user)
    Until $questions = 0

    [/autoit]

    Meine Werke:
    Ste`s Web-Radio

  • Von einer externen Anwendung heraus, läßt sich das natürlich nicht so einfach verhindern, außer Du änderst während der Script-Laufzeit den Wert von "browser.link.open_newwindow"
    (siehe: _FFPrefSet und http://kb.mozillazine.org/About:config_entries)

    "Edit: Funzt leider nicht mit anderem Port" - falls Du dieses angesprochene Verhalten meinst - das ist logisch, der Port bestimmt auch nur die Kommunikation zwischen MozRepl und in z.B. AutoIt.

  • Ok hab das jetzt gleich nach der GUI erstellung eingesetzt aber trotzdem wird ein neuer Tab geöffnet , muss ich das an einer bestimmten Stelle
    benutzen?
    Sorry wenn dieser Bug gefixxt wäre dann wäre mein Script sogut wie fertig :rolleyes:

    Edit: Es funzt!!! Gleich nach dem _FFStart einzusetzen :D:D

    MfG hellboy

    [autoit]

    Do
    _help($user)
    Until $questions = 0

    [/autoit]

    Meine Werke:
    Ste`s Web-Radio