Webseiten in der Liste funktionieren nicht so wie sie sollen

  • Hallo Community, ich habe zwei Listen im Script, in der ersten Liste stehen zwei Einträge "Die Besten Videoportale" und "Die Besten Suchmaschinen" wenn ich eins von beiden mit der Maus auswähle werden die Suchmaschinen und Videoportale in Liste 2 angezeigt

    Und irgendwie kriege ich es nicht hin, wenn ich in Liste 2 eine Suchmaschine oder ein Videoportal auswähle und dann denn "Go" Button drücke das sich dann die entsprechende Webseite über mein Standardbrowser öffnen, wenn jemand weiß wies geht ich bin für jede Hilfe dankbar

    Spoiler anzeigen
    [autoit]

    Global $a_Inhalt[2][3] = [ _
    ["Die Besten Videoportale", "Youtube|Vimeo|Clipfish|Myvideo", "www.youtube.com"], _
    ["Die Besten Suchmaschinen", "Google|Lycos|Yahoo|Alta Vista", "www.google.de"]]

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

    $h_Gui = GUICreate ("", 350, 250)
    $h_List1 = GUICtrlCreateList ("", 10, 10, 160, 160)
    $h_List2 = GUICtrlCreateList ("", 180, 10, 160, 160)

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

    For $i = 0 To UBound ($a_Inhalt) - 1
    GUICtrlSetData ($h_List1, $a_Inhalt[$i][0])
    Next

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

    $h_Go = GUICtrlCreateButton("Go", 10, 200, 50, 26)

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

    GUISetState (@SW_SHOW, $h_Gui)

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

    While True
    Switch GUIGetMsg ()
    Case -3
    Exit
    Case $h_List1
    $s_Read = GUICtrlRead ($h_List1)
    For $i = 0 To UBound ($a_Inhalt) - 1
    If $s_Read = $a_Inhalt[$i][0] Then
    GUICtrlSetData ($h_List2, "")
    GUICtrlSetData ($h_List2, $a_Inhalt[$i][1])
    ExitLoop
    EndIf
    Next
    Case $h_Go
    $s_Read = GUICtrlRead ($h_List1)
    For $i = 0 To UBound ($a_Inhalt) - 1
    If $s_Read = $a_Inhalt[$i][0] Then ExitLoop ShellExecute ($a_Inhalt[$i][2])
    Next
    EndSwitch
    WEnd

    [/autoit]


    mfg Mainstream

    Einmal editiert, zuletzt von Mainstream (9. Juni 2012 um 00:52)

  • @James1337, nein das funktioniert leider nicht, ich hab schon einiges getestet... aber bisher ohne Erfolg

    Bin am verzweifeln kriege es irgendwie nicht hin dass es richtig funktioniert, jeder der ein bisschen Ahnung hat und mir helfen kann, den danke ich schonmal im voraus

    mfg Mainstream

  • Naja was erwartest du? Das Script funktioniert ansich ja und macht das was du programmiert hast. Beim go Button überprüfst du den Inhalt von list1 und nicht von list2, also kann auch nur das geöffnet werden was zur list1 passt, also entweder die Suchmaschine google oder das Videoportal youtube. Mehr ist auch nicht in deinem Array gespeichert.

    Wenn du also eine der Suchmaschinen auswählen willst musst du erstmal dein Array ändern und hier die urls für jede suchmaschine speichern, das selbe für die Videoportale. Im zweiten Schritt musst du natürlich liste2 statt liste1 prüfen.

    Nebenbei bemerkt rate ich davon ab direkt nach einem exitloop oder continueloop statement einen Funktionsaufruf zu platzieren. Dies funktioniert im Falle von shellexecute zwar zufälligerweise, ist aber bei anderen Funktionen riskant. Lies am besten die Hilfe zu den beiden statements, dann wird dir auch klar warum.

    Zu guter letzt eine lauffähige Version:

    Spoiler anzeigen
    [autoit]


    #include <array.au3>

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

    Global $a_VideoPortals[5][2] = [ _
    ["Name","URL"], _
    ["Youtube","www.youtube.com"], _
    ["Vimeo","www.vimeo.com"], _
    ["Clipfish","www.clipfish.de"], _
    ["MyVideo","www.myvideo.de"] _
    ]

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

    Global $a_SearchMachines[5][2] = [ _
    ["Name","URL"], _
    ["Google","www.google.de"], _
    ["Lycos","www.lycos.de"], _
    ["Yahoo","www.yahoo.de"], _
    ["Alta Vista","www.altavista.com"] _
    ]

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

    Global $a_Find

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

    _ArrayDisplay($a_VideoPortals)
    _ArrayDisplay($a_SearchMachines)

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

    $h_Gui = GUICreate ("", 350, 250)
    $h_List1 = GUICtrlCreateList ("", 10, 10, 160, 160)
    $h_List2 = GUICtrlCreateList ("", 180, 10, 160, 160)
    $h_Go = GUICtrlCreateButton("Go", 10, 200, 50, 26)

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

    GUICtrlSetData ($h_List1, "Die Besten Videoportale|Die Besten Suchmaschinen")

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

    GUISetState (@SW_SHOW, $h_Gui)

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

    While True
    Switch GUIGetMsg ()
    Case -3
    Exit
    Case $h_List1
    $s_Read = GUICtrlRead ($h_List1)
    Switch $s_Read
    Case "Die Besten Videoportale"
    $a_Find = $a_VideoPortals
    Case "Die Besten Suchmaschinen"
    $a_Find = $a_SearchMachines
    Case Else
    $a_Find = -1
    EndSwitch
    if $a_Find <> -1 Then
    $newString=""
    GUICtrlSetData ($h_List2, $newString)
    For $i = 1 To UBound ($a_Find) - 1
    $newString &= $a_Find[$i][0] & "|"
    Next
    GUICtrlSetData ($h_List2, StringTrimRight($newString,1))
    EndIf
    Case $h_Go
    $s_Read = GUICtrlRead ($h_List1)
    Switch $s_Read
    Case "Die Besten Videoportale"
    $a_Find = $a_VideoPortals
    Case "Die Besten Suchmaschinen"
    $a_Find = $a_SearchMachines
    Case Else
    $a_Find = -1
    EndSwitch
    if $a_Find <> -1 Then
    $s_Read = GUICtrlRead ($h_List2)
    For $i = 1 To UBound ($a_Find) - 1
    If $s_Read = $a_Find[$i][0] Then
    ShellExecute ($a_Find[$i][1])
    ExitLoop
    EndIf
    Next
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • misterspeed danke das Script funktioniert super, aber ist es irgendwie möglich den "Array: ListView Display" wegzubekommen, stört schon ein wenig wenn sich jedes Mal dieses Fenster öffnet beim Programm Starten

    Mit dem "Array: ListView Display" Fenster vorm Programm start, ist das Script nicht wirklich für mich brachbar, aber trotzdem danke für deine mühe

    mfg Mainstream

  • misterspeed danke nochmal, ich habs selber hin bekommen mit dem "Array: ListView Display" Fester, ist echt gut das Script aber in den Array's muss ich mich noch ein bisschen einarbeiten, dar sehe ich noch nicht ganz durch, ich danke dir nochmal vielmals für deine Hilfe

    mfg Mainstream

  • Genau zum besseren Verständnis und der Veranschaulichung der beiden Arrays war das arraydisplay ja noch drin. ;)
    Wie man das wieder rausbekommt haste ja gottseidank selbst rausgefunden, sonst würde ich jetzt etwas an dir zweifeln. :P