Neue Fehler durch 4242 Bugfix

  • Hallo,

    ersteinmal der Code:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    #include <GuiComboBoxEx.au3>
    #include <GuiListView.au3>
    #include <Array.au3>
    #include <IE.au3>
    #include <String.au3>
    #include <FF.au3>

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

    $gui = GUICreate("Programm", 1905, 1000)

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

    $tab = GUICtrlCreateTab (0, 0, 1920, 20)

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

    $tstreamsitem = GUICtrlCreateTabItem ("Streams") ;Tab Streams Item

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

    Dim $ooliveid = 2721 ;Ocelote Live ID
    Dim $oaliveid = 42146 ;Athene Live ID

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

    Func _CheckOwn3dStatus($oliveid)

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

    $ourl = "http://api.own3d.tv/rest/live/status.xml?liveid=" & $oliveid

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

    _FFStart ($ourl, "default", 1, "true")
    _FFLoadWait ()
    $ostatushtml = _FFReadHTML () ;Own3d Status auslesen
    _FFQuit ()

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

    Global $ostatus[4]
    Local $aRead[1]

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

    $onamestart = ">live_name</span>&gt;</a>"
    $onameend = "<span xmlns="
    $oviewerstart = ">live_viewer</span>&gt;</a>"
    $oviewerend = "<span xmlns="
    $ogamestart = ">game_short</span>&gt;</a>"
    $ogameend = "<span xmlns="
    $ostatusstart = ">live_is_live</span>&gt;</a>"
    $ostatusend = "<span xmlns="

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

    $aRead = _StringBetween ($ostatushtml, $onamestart, $onameend) ;Name
    If Not @error Then $ostatus[0] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, $oviewerstart, $oviewerend) ;Viewer
    If Not @error Then $ostatus[1] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, $ogamestart, $ogamestart) ;Game
    If Not @error Then $ostatus[2] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, $ostatusstart, $ostatusend) ;Status
    If Not @error Then $ostatus[3] = $aRead[0]

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

    EndFunc

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

    $ooverviewlist = GUICtrlCreateListView ("Stream | Viewer |Game", 1600, 470, 300, 450) ;own3d Stream Liste

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

    Func _CreateListViewItemIfLive()
    If $ostatus[3] = 1 Then

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

    GUICtrlCreateListViewItem ($ostatus[0] & "|" & $ostatus[1] & "|" & $ostatus[2], $ooverviewlist)

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

    EndIf
    EndFunc

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

    ;_CheckOwn3dStatus ausführen und ListViewItem erstellen
    _CheckOwn3dStatus($ooliveid) ;Ocelote Live ID
    _CreateListViewItemIfLive()
    _CheckOwn3dStatus($oaliveid) ;Athene Live ID
    _CreateListViewItemIfLive()

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

    [/autoit]

    Nach der Anwendung dieses Bugfixes traten folgende Fehler auf:

    1. Firefox startet sichtbar.
    2. Firefox schließt sich nicht wieder.
    3. Das eigentliche Programm (GUI) startet nicht.

    Ich hoffe ihr könnt mir helfen :)

    MfG ExChill

  • Also, das Script war voll von Fehlern und ist auch nicht sehr logisch aufgebaut, aber mir war langweilig und ich hab zumindest mal die Fehler beseitigt.

    Hier mal das korrigierte Script:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <GuiListView.au3>
    #include <String.au3>
    #include <Inet.au3>

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

    Global $ooliveid = 2721 ;Ocelote Live ID
    Global $oaliveid = 42146 ;Athene Live ID

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

    $gui = GUICreate("Programm", @DesktopWidth -100, @DesktopHeight-100)
    $tab = GUICtrlCreateTab (0, 0, 1920, 20)
    $tstreamsitem = GUICtrlCreateTabItem ("Streams") ;Tab Streams Item
    $ooverviewlist = GUICtrlCreateListView ("Stream | Viewer |Game", @DesktopWidth - 430, 470, 300, 450) ;own3d Stream Liste
    GUISetState(@SW_SHOW)

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

    _CheckOwn3dStatus($ooliveid) ;Ocelote Live ID
    _CreateListViewItemIfLive()
    _CheckOwn3dStatus($oaliveid) ;Athene Live ID
    _CreateListViewItemIfLive()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func _CheckOwn3dStatus($oliveid)

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

    $ourl = "http://api.own3d.tv/rest/live/status.xml?liveid=" & $oliveid
    $ostatushtml = _INetGetSource($ourl)
    ;~ FileWrite(@ScriptDir & "/source.txt",$ostatushtml)
    Global $ostatus[4]

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

    $onamestart = "<live_name>"
    $onameend = "</live_name>"
    $oviewerstart = "<live_viewers>"
    $oviewerend = "</live_viewers>"
    $ogamestart = "<game_short>"
    $ogameend = "</game_short>"
    $ostatusstart = "<live_is_live>"
    $ostatusend = "</live_is_live>"

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

    $aRead = _StringBetween ($ostatushtml, $onamestart, $onameend) ;Name
    If Not @error Then $ostatus[0] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, $oviewerstart, $oviewerend) ;Viewer
    If Not @error Then $ostatus[1] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, $ogamestart, $ogameend) ;Game
    If Not @error Then $ostatus[2] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, $ostatusstart, $ostatusend) ;Status
    If Not @error Then $ostatus[3] = $aRead[0]

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

    ;~ _ArrayDisplay($ostatus)
    EndFunc

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

    Func _CreateListViewItemIfLive()
    If $ostatus[3] = 1 Then
    GUICtrlCreateListViewItem ($ostatus[0] & "|" & $ostatus[1] & "|" & $ostatus[2], $ooverviewlist)
    EndIf
    EndFunc

    [/autoit]

    Wiegesagt nicht sehr elegant gelöst, aber es funzt...

    [Edit]
    So würde ichs machen...

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <GuiListView.au3>
    #include <String.au3>
    #include <Inet.au3>

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

    ; Array mit 10 Zeilen & 5 Spalten

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

    ;~ $aData[0][0] = ID
    ;~ $aData[0][1] = Name
    ;~ $aData[0][2] = Viewer
    ;~ $aData[0][3] = Game
    ;~ $aData[0][4] = Status

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

    Dim $aData[10][5]
    $aData[0][0] = 2721 ;Ocelote Live ID
    $aData[1][0] = 42146 ;Athene Live ID

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

    $gui = GUICreate("Programm", @DesktopWidth -100, @DesktopHeight-100)
    $tab = GUICtrlCreateTab (0, 0, 1920, 20)
    $tstreamsitem = GUICtrlCreateTabItem ("Streams") ;Tab Streams Item
    $ooverviewlist = GUICtrlCreateListView ("Stream | Viewer |Game", @DesktopWidth - 430, 470, 300, 450) ;own3d Stream Liste
    GUISetState(@SW_SHOW)

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

    GUICtrlCreateListViewItem("Loading...",$ooverviewlist)
    For $i = 0 To UBound($aData)-1 ; Array befüllen
    If $aData[$i][0] <> "" Then _FillDataArray($aData[$i][0],$i)
    Next
    _GUICtrlListView_DeleteAllItems($ooverviewlist)
    For $i = 0 To UBound($aData)-1 ; Items erstellen
    If $aData[$i][4] = 1 Then GUICtrlCreateListViewItem($aData[$i][1] & "|" & $aData[$i][2] & "|" & $aData[$i][3], $ooverviewlist)
    Next

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

    ;~ _ArrayDisplay($aData)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func _FillDataArray($oliveid,$i)
    $ourl = "http://api.own3d.tv/rest/live/status.xml?liveid=" & $oliveid
    $ostatushtml = _INetGetSource($ourl)
    ;~ FileWrite(@ScriptDir & "/source.txt",$ostatushtml)

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

    $aRead = _StringBetween ($ostatushtml, "<live_name>", "</live_name>") ;Name
    If Not @error Then $aData[$i][1] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, "<live_viewers>", "</live_viewers>") ;Viewer
    If Not @error Then $aData[$i][2] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, "<game_short>", "</game_short>") ;Game
    If Not @error Then $aData[$i][3] = $aRead[0]
    $aRead = _StringBetween ($ostatushtml, "<live_is_live>", "</live_is_live>") ;Status
    If Not @error Then $aData[$i][4] = $aRead[0]
    EndFunc

    [/autoit]

    MfG hellboy

    [autoit]

    Do
    _help($user)
    Until $questions = 0

    [/autoit]

    Meine Werke:
    Ste`s Web-Radio

    4 Mal editiert, zuletzt von hellboy3 (18. Oktober 2012 um 10:17)

  • Beschäftige mich noch damit, vielen Dank für die Hilfe :)
    Werde den Thread heute Abend auf gelöst setzten.

    EDIT: Wie kann ich den Thread denn auf gelöst setzen? :O

    Einmal editiert, zuletzt von ExChill (26. Oktober 2012 um 21:41)