_SoundPause

  • Guten Abend,
    habe ein Problem mit der Funktion _SoundPause.
    Das Abspielen eines Titels über _SoundPlay funktioniert bei mir ohne Probleme, wenn ich jedoch dies pausieren möchte, wird der abgespielte Titel nicht pausiert sondern gestoppt. Ich rufe meine Funktionen über den Case Befehel auf. Die Funktionen habe ich wie folgt aufgebaut:

    [autoit]

    func sound()
    $SongPlay=_GUICtrlListView_GetItemTextString($Listview1)
    $SongRoot=StringSplit($SongPlay, "|")
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    EndFunc

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

    func _Pause()
    _SoundPause($abspiel)
    EndFunc

    [/autoit]

    Ich vermute das die Übergabe der Variable $abspiel das Problem bereitet, da diese, bevor ich sie auf Global gesetzt habe, immer den Error "nicht deklariert" hervorgebracht.

    Kann mir vllt. jemand sagen was ich an meinem Script ändern muss, damit dieses Problemlos läuft?

  • Hallo so sollte es funktionieren:

    Spoiler anzeigen
    [autoit]

    func sound()
    $SongPlay=_GUICtrlListView_GetItemTextString($Listview1)
    $SongRoot=StringSplit($SongPlay, "|")
    if IsArray $abSpiel then
    _SoundResume($abspiel)
    else
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    endif
    EndFunc

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

    func _Pause()
    _SoundPause($abspiel)
    EndFunc

    [/autoit]

    wenn nicht komplettes Skript posten,

    mfg (Auto)Bert

  • Oder einfach so:

    [autoit]

    #include <Sound.au3>
    $temp = sound()
    Sleep(1000)
    _Pause($temp)
    Sleep(1000)
    _Resume ($temp)
    Sleep(1000)

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

    func sound()
    $abspiel=_SoundOpen("C:\test.mp3")
    If @error = 2 Then
    MsgBox(0, "Fehler", "Die Datei existiert nicht.")
    Exit
    EndIf
    $playsound=_SoundPlay($abspiel, 0)
    Return $abspiel
    EndFunc

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

    func _Pause($abspiel2)
    _SoundPause($abspiel2)
    EndFunc
    func _Resume($abspiel3)
    _SoundResume($abspiel3)
    endfunc

    [/autoit]
    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Danke euch.

    Die Lösung von AutoBert funktioniert wenn ich anstelle von

    [autoit]

    IsArray $abSpiel - IsArray($abSpiel)

    [/autoit]

    setzte. Wo dies nun funktioniert, hat sich mir ein neues Problem aufgetan. Wenn ich ein Lied in meiner Playlist über den "Stop"-Button beende, kann ich kein anderes Lied, bzw. dieses Lied wieder starten. Vermutlich wird dies von meinem etwas abenteuerlichen Buttonkonstrukt stammen.

    [autoit]

    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 100, 37, 37)
    else
    _pause()
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic5=GUICtrlCreatePic($test, 460, 100, 37, 37)
    endif

    [/autoit]

    Ich wollte damit erreichen, dass wenn ich den Play-Button gedrückt habe, an dessen Stelle der Pause-Button erscheint. Dies funktioniert auch, jedoch tritt das oben genannte Problem auf.

    Kann mir jemand sagen, ob es tatsächlich daran liegt?

  • Das Problem ist, dass die Variablen innerhalb einer Function nicht für andere Funktionen gelten, außer sie wurden AUßERHALB der Funktion als Global deklariert, oder, wie bei meinem Script, übergeben.

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

  • Hallo descent,

    warscheins hast du nur einen Tippfehler in Zeile 11, du kannst dies aber auch kürzer schreiben:

    [autoit]

    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    $test = @ScriptDir & "\pause.gif"
    GUICtrlSetImage($pic,$test)
    else
    _pause()
    $test = @ScriptDir & "\play.gif"
    GUICtrlSetImage($pic,$test)
    endif

    [/autoit]


    oder noch kürzer:

    [autoit]

    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    GUICtrlSetImage($pic,@ScriptDir & "\pause.gif")
    else
    _pause()
    GUICtrlSetImage($pic,@ScriptDir & "\play.gif")
    endif

    [/autoit]

    mfg (Auto)Bert

  • Bei Vorschläge funktionieren so leider nicht, da sich die Bilder überlagern. Der Play-Button verschwindet nicht, wenn ich diesen betätige. Das Problem mit dem erneuten Abspielen eines Titels ist damit leider auch nicht gelöst.

    Edit: Wenn ich die Variablen als Global definiere funktioniert es auch nicht

  • Geht klar. Hier ist mein komplettes Script:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Musicplayer_UDF.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Sound.au3>

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

    Global $abspiel,$playsound,$SongRoot,$SongPlay, $test, $pic

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

    $test = @ScriptDir & "\play.gif"

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

    $Form1 = GUICreate("Form1", 610, 195, 209, 315)
    $pic=GUICtrlCreatePic($test, 460, 100, 37, 37)
    $pic1=GUICtrlCreatePic(@ScriptDir & "\next.gif", 560, 100, 36, 36)
    $pic2=GUICtrlCreatePic(@ScriptDir & "\back.gif", 410, 100, 36, 36)
    $pic3=GUICtrlCreatePic(@ScriptDir & "\stop.gif", 510, 100, 37, 37)
    $ListView1=GUICtrlCreateListView("Song|Pfad", 413, 20, 178, 75)
    $ListView2=GUICtrlCreateListView("Song|Pfad", 20, 20, 350, 135)
    GUICtrlSetState($listview1, $GUI_DROPACCEPTED)
    $Menu=GUICtrlCreateMenu("Datei")
    $Menumedia=GUICtrlCreateMenu("Medienbibliothek")
    $MediaAktualisieren=guictrlcreatemenuitem("Medienbiliothek aktualisieren",$Menumedia)
    $Pfad=guictrlcreatemenuitem("Pfad zum Medienordner festlegen",$Menumedia)
    $show=guictrlcreatemenuitem("Pfad zum Medienordner anzeigen",$Menumedia)
    $Beenden=guictrlcreatemenuitem("Beenden",$Menu)
    GUISetState(@SW_SHOW)

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

    start()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_DROPPED
    $ar = _GUICtrlListView_GetSelectedIndices($listview2, True)
    ;_ArrayDisplay($ar)
    For $i = 1 To $ar[0]
    $sItem = _GUICtrlListView_GetItemTextString($listview2, $ar[$i])
    GUICtrlCreateListViewItem($sItem, $listview1)
    Next
    For $i = 0 To 1
    _GUICtrlListView_SetColumnWidth($Listview1, $i, $LVSCW_AUTOSIZE)
    Next
    case $pic3
    _stop()
    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 100, 37, 37)
    else
    _pause()
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic5=GUICtrlCreatePic($test, 460, 100, 37, 37)
    endif
    case $beenden
    exit
    case $Pfad
    $MediaPfad=FileSelectFolder("Medienorder auswählen", "")
    IniWrite("config.ini", "Einstellungen","Medienpfad", $MediaPfad)
    case $show
    $mediapfadread = IniRead("config.ini", "Einstellungen","Medienpfad", "")
    MsgBox(0, "Medienordner", "Aktuell ist folgender Medienordner ausgewählt:"&@crlf&@crlf&$mediapfadread)
    case $MediaAktualisieren
    $folder=IniRead("config.ini", "Einstellungen","Medienpfad", "")
    $Result=media($folder, ".+\.mp3", 1)
    FileDelete("media.ini")
    _GUICtrlListView_DeleteAllItems($ListView2)
    for $i = 1 to $result[0]
    $Song1=stringsplit($Result[$i],"\")
    $Song=StringSplit($Song1[$Song1[0]],".")
    GUICtrlCreateListViewItem($Song[1]&"|"&$result[$i] , $ListView2)
    IniWrite("media.ini", "Media", ""&$i&"", $Song[1]&"|"&$result[$i])
    next
    For $i = 0 To 1
    _GUICtrlListView_SetColumnWidth($Listview2, $i, $LVSCW_AUTOSIZE)
    Next
    EndSwitch
    WEnd

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

    func sound()
    $SongPlay=_GUICtrlListView_GetItemTextString($Listview1)
    $SongRoot=StringSplit($SongPlay, "|")
    if IsArray($abSpiel) then
    _SoundResume($abspiel)
    else
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    endif

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

    EndFunc

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

    func _Pause()
    _SoundPause($abspiel)
    EndFunc

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

    func _stop()
    _SoundStop($abspiel)
    EndFunc

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

    func media($sSD, Const $sPat = '', Const $iF = 3)
    Local $sRet = "", $sSubD = '|' & $sSD
    Local $FFFF, $FFNF, $sDir, $iC
    Local $aD, $hDLL = DllOpen('kernel32.dll')

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

    If StringRight($sSD, 1) = '\' Then $sSD = StringTrimRight($sSD, 1)
    If Not FileExists($sSD) Then Return SetError(2, 0, "")
    If Not ($iF = 3 Or $iF = 1 Or $iF = 2) Then Return SetError(3, 0, "")
    Do
    $iC = StringInStr($sSubD, '|', 2, -1)
    If @error Or $iC = 0 Then ExitLoop
    $iC = StringLen($sSubD) - $iC
    $sDir = StringRight($sSubD, $iC)
    $sSubD = StringTrimRight($sSubD, $iC + 1)
    $FFFF = FileFindFirstFile($sDir & '\*')
    If $FFFF <> -1 Then
    Do
    $FFNF = FileFindNextFile($FFFF)
    If @error Then ExitLoop
    If @extended Then
    If BitAND(StringRegExp($FFNF, $sPat) * 2, $iF) Then $sRet &= $sDir & '\' & $FFNF & '\|'
    $aD = DllCall($hDLL, 'dword', 'GetFileAttributesW', 'wstr', $sDir & '\' & $FFNF)
    If @error And BitAND($aD[0],0x400) Then ContinueLoop
    $sSubD &= '|' & $sDir & '\' & $FFNF
    ElseIf BitAND(StringRegExp($FFNF, $sPat), $iF) Then
    $sRet &= $sDir & '\' & $FFNF & '|'
    EndIf
    Until 0
    FileClose($FFFF)
    EndIf
    Until 0
    DllClose($hDLL)
    Return StringSplit(StringTrimRight($sRet, 1), '|')
    EndFunc

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

    func start()
    If FileExists(@ScriptDir & "\media.ini") Then
    $var = IniReadSection(@ScriptDir & "\media.ini", "Media")
    If @error Then
    MsgBox(4096, "Error", "Unable to read section.")
    Else
    For $i = 1 To $var[0][0]
    GUICtrlCreateListViewItem($var[$i][1] , $ListView2)
    Next
    EndIf
    Else
    MsgBox(4096, "Medienbibliothek", "Es konnte keine Medienbibliotek geladen werden.")
    EndIf

    For $i = 0 To 1
    _GUICtrlListView_SetColumnWidth($Listview2, $i, $LVSCW_AUTOSIZE)
    Next
    EndFunc

    [/autoit]
  • Hallo descent,

    du verwendest Musicplayer_UDF.au3 in deinem Skript, diese liegt mir leider nicht vor. Kannst du diese bitte einstellen oder einen Link dazu posten, eingebundene UDF wird nicht verwedet. Die nötigen Gifs habe ich. Aber kannst du mir erklären warum du 2 Listviews in deiner GUI hast. Wenn ich Lieder aus der linken Listview in die rechte ziehe, kann ich diese dort starten, pausieren und auch wieder fortsetzen.

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (13. Mai 2010 um 17:43)

  • Hallo AutoBert,

    wo du es erwähnst fällt mir gerade auf, dass ich diese noch nicht zum Einsatz gebracht habe, jedoch schon hinzugefügt. Die Musicplayer_UDF.au3 habe ich noch nicht verwendet, da ich auf die Sound.au3 gestoßen bin und es zu dieser eine Hilfe gibt ;)
    Man kann die Musicplayer_UDF.au3also eigentlich aus meinem Script löschen.

  • Ich benutze 2 Listviews, da eine davon die Medienbibliothek wird, in welcher sich alle .Mp3's befinden und die andere die Playlist. Ich arbeite derzeit auch noch an einer Suchoption um Mp3-Dateien aus der Medienbibliothek schnell zu finden.
    Wenn du nun eine Mp3 aus der Playlist (der rechten ListView) abspielst, drücke dann mal den "Stop"-Button und versuche die Datei oder eine andere wieder zu starten. Dies funktioniert bei mir nicht.

  • Hallo descent,

    hier das überarbeitete Skript:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    ;#include <Musicplayer_UDF.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Sound.au3>

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

    Global $abspiel,$playsound,$SongRoot,$SongPlay, $test, $pic

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

    $test = @ScriptDir & "\play.gif"

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

    $Form1 = GUICreate("Form1", 610, 195, 209, 315)
    $pic=GUICtrlCreatePic($test, 460, 100, 37, 37)
    $pic1=GUICtrlCreatePic(@ScriptDir & "\next.gif", 560, 100, 36, 36)
    $pic2=GUICtrlCreatePic(@ScriptDir & "\back.gif", 410, 100, 36, 36)
    $pic3=GUICtrlCreatePic(@ScriptDir & "\stop.gif", 510, 100, 37, 37)
    $ListView1=GUICtrlCreateListView("Song|Pfad", 413, 20, 178, 75)
    $ListView2=GUICtrlCreateListView("Song|Pfad", 20, 20, 350, 135)
    GUICtrlSetState($listview1, $GUI_DROPACCEPTED)
    $Menu=GUICtrlCreateMenu("Datei")
    $Menumedia=GUICtrlCreateMenu("Medienbibliothek")
    $MediaAktualisieren=guictrlcreatemenuitem("Medienbiliothek aktualisieren",$Menumedia)
    $Pfad=guictrlcreatemenuitem("Pfad zum Medienordner festlegen",$Menumedia)
    $show=guictrlcreatemenuitem("Pfad zum Medienordner anzeigen",$Menumedia)
    $Beenden=guictrlcreatemenuitem("Beenden",$Menu)
    GUISetState(@SW_SHOW)

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

    start()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_DROPPED
    $ar = _GUICtrlListView_GetSelectedIndices($listview2, True)
    ;_ArrayDisplay($ar)
    For $i = 1 To $ar[0]
    $sItem = _GUICtrlListView_GetItemTextString($listview2, $ar[$i])
    GUICtrlCreateListViewItem($sItem, $listview1)
    Next
    For $i = 0 To 1
    _GUICtrlListView_SetColumnWidth($Listview1, $i, $LVSCW_AUTOSIZE)
    Next
    case $pic1
    _next()
    case $pic2
    _prev()
    case $pic3
    _stop()
    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 100, 37, 37)
    else
    _pause()
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 100, 37, 37)
    endif
    case $beenden
    exit
    case $Pfad
    $MediaPfad=FileSelectFolder("Medienorder auswählen", "")
    IniWrite("config.ini", "Einstellungen","Medienpfad", $MediaPfad)
    case $show
    $mediapfadread = IniRead("config.ini", "Einstellungen","Medienpfad", "")
    MsgBox(0, "Medienordner", "Aktuell ist folgender Medienordner ausgewählt:"&@crlf&@crlf&$mediapfadread)
    case $MediaAktualisieren
    $folder=IniRead("config.ini", "Einstellungen","Medienpfad", "")
    $Result=media($folder, ".+\.mp3", 1)
    FileDelete("media.ini")
    _GUICtrlListView_DeleteAllItems($ListView2)
    for $i = 1 to $result[0]
    $Song1=stringsplit($Result[$i],"\")
    $Song=StringSplit($Song1[$Song1[0]],".")
    GUICtrlCreateListViewItem($Song[1]&"|"&$result[$i] , $ListView2)
    IniWrite("media.ini", "Media", ""&$i&"", $Song[1]&"|"&$result[$i])
    next
    For $i = 0 To 1
    _GUICtrlListView_SetColumnWidth($Listview2, $i, $LVSCW_AUTOSIZE)
    Next
    EndSwitch
    WEnd

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

    func _next()
    Local $aOldId = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $aOldId[1] < (_GUICtrlListView_GetItemCount($listview1) -1) Then
    $aOldId[1] += 1
    Else
    $aOldId[1] = 0
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $aOldId[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$aOldId[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    EndFunc

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

    func _prev()
    Local $aOldId = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $aOldId[1] > 0 Then
    $aOldId[1] -= 1
    Else
    $aOldId[1] = _GUICtrlListView_GetItemCount($listview1) -1
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $aOldId[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$aOldId[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    EndFunc

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

    func sound()
    ;$SongPlay=_GUICtrlListView_GetItemTextString($Listview1)
    ;$SongRoot=StringSplit($SongPlay, "|")
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1)
    if IsArray($abSpiel) then
    _SoundResume($abspiel)
    else
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    endif

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

    EndFunc

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

    func _Pause()
    _SoundPause($abspiel)
    EndFunc

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

    func _stop()
    _SoundStop($abspiel)
    $abspiel = ""
    GUICtrlDelete($pic)
    $test = @ScriptDir & "\play.gif"
    $pic=GUICtrlCreatePic($test, 460, 100, 37, 37)
    EndFunc

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

    func media($sSD, Const $sPat = '', Const $iF = 3)
    Local $sRet = "", $sSubD = '|' & $sSD
    Local $FFFF, $FFNF, $sDir, $iC
    Local $aD, $hDLL = DllOpen('kernel32.dll')

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

    If StringRight($sSD, 1) = '\' Then $sSD = StringTrimRight($sSD, 1)
    If Not FileExists($sSD) Then Return SetError(2, 0, "")
    If Not ($iF = 3 Or $iF = 1 Or $iF = 2) Then Return SetError(3, 0, "")
    Do
    $iC = StringInStr($sSubD, '|', 2, -1)
    If @error Or $iC = 0 Then ExitLoop
    $iC = StringLen($sSubD) - $iC
    $sDir = StringRight($sSubD, $iC)
    $sSubD = StringTrimRight($sSubD, $iC + 1)
    $FFFF = FileFindFirstFile($sDir & '\*')
    If $FFFF <> -1 Then
    Do
    $FFNF = FileFindNextFile($FFFF)
    If @error Then ExitLoop
    If @extended Then
    If BitAND(StringRegExp($FFNF, $sPat) * 2, $iF) Then $sRet &= $sDir & '\' & $FFNF & '\|'
    $aD = DllCall($hDLL, 'dword', 'GetFileAttributesW', 'wstr', $sDir & '\' & $FFNF)
    If @error And BitAND($aD[0],0x400) Then ContinueLoop
    $sSubD &= '|' & $sDir & '\' & $FFNF
    ElseIf BitAND(StringRegExp($FFNF, $sPat), $iF) Then
    $sRet &= $sDir & '\' & $FFNF & '|'
    EndIf
    Until 0
    FileClose($FFFF)
    EndIf
    Until 0
    DllClose($hDLL)
    Return StringSplit(StringTrimRight($sRet, 1), '|')
    EndFunc

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

    func start()
    If FileExists(@ScriptDir & "\media.ini") Then
    $var = IniReadSection(@ScriptDir & "\media.ini", "Media")
    If @error Then
    MsgBox(4096, "Error", "Unable to read section.")
    Else
    For $i = 1 To $var[0][0]
    GUICtrlCreateListViewItem($var[$i][1] , $ListView2)
    Next
    EndIf
    Else
    MsgBox(4096, "Medienbibliothek", "Es konnte keine Medienbibliotek geladen werden.")
    EndIf

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

    For $i = 0 To 1
    _GUICtrlListView_SetColumnWidth($Listview2, $i, $LVSCW_AUTOSIZE)
    Next
    EndFunc

    [/autoit]

    mfg (Auto)Bert

  • Vielen Dank das du gleich noch weiter gearbeitet hast ;).
    Jetzt weiß ich was ich falsch gemacht habe. Sehr nützlich. Ich werde dennoch versuchen die Umschaltfunktion selbst zu schreiben um meine noch etwas wenigen Kenntnisse aufzubessern.

    Sollte ich noch einmal nicht weiter kommen, werde ich mich hier melden.
    Nochmal vielen Dank für deine schnelle Hilfe. Das Forum hier ist einfach Super.