1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. descent

Beiträge von descent

  • Data von einer ListViewItem einstellen

    • descent
    • 15. Mai 2010 um 21:09

    Müsste so funktionieren:

    [autoit]

    GUICtrlCreateListViewItem("Firefox|Aktiv",$ListView)

    [/autoit]
  • Mp3 Player

    • descent
    • 15. Mai 2010 um 20:57

    Stimmt du hast recht, danke dir.

    So funktioniert es nun:

    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 <GUIConstants.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Sound.au3>

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

    Global $abspiel,$titel
    $test = @ScriptDir & "\play.gif"

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

    $playing=false

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

    $Form1 = GUICreate("Form1", 610, 225, 209, 315)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    $pic1=GUICtrlCreatePic(@ScriptDir & "\next.gif", 560, 150, 36, 36)
    $pic2=GUICtrlCreatePic(@ScriptDir & "\back.gif", 410, 150, 36, 36)
    $pic3=GUICtrlCreatePic(@ScriptDir & "\stop.gif", 510, 150, 37, 37)
    $ListView1=GUICtrlCreateListView("Song|Pfad", 413, 50, 178, 75)
    $ListView2=GUICtrlCreateListView("Song|Pfad", 20, 50, 350, 135)
    $Search=GUICtrlCreateInput("",20, 17, 250, 20)
    $SearchButton=GUICtrlCreateButton("Suchen", 291, 17, 80, 20)
    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)
    $Radio=GUICtrlCreateMenu("Internetradio")
    $add=guictrlcreatemenuitem("Link hinzufügen",$Radio)
    guictrlcreatemenuitem("",$Radio)
    $Label=GUICtrlCreateLabel("00:00:00", 412, 1 ,100 ,100)
    $Label1=GUICtrlCreateLabel("Titel", 412, 14 ,150 ,15)
    $Label2=GUICtrlCreateLabel("00:00:00", 412, 27 ,43 ,12)
    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)
    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 $SearchButton
    search()
    case $add
    addradio()
    case $pic2
    _back()
    case $pic1
    _next()
    case $pic3
    _stop()
    pausebutton()
    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    if $playing = true then
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    endif
    else
    _pause()
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 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 _time()
    if $playing = true then
    $soundpos=_SoundPos($abspiel)
    guictrlsetdata($label2,$soundpos)
    EndIf
    EndFunc

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

    func sound()
    $SongPlay=_GUICtrlListView_GetItemTextString($Listview1)
    $SongRoot=StringSplit($SongPlay, "|")
    if IsArray($abSpiel) then
    _SoundResume($abspiel)
    else
    $abspiel=_SoundOpen($SongRoot[2])
    if $abspiel="" Then
    Msgbox(4096,"Datei","Es wurde keine Datei ausgewählt")
    else
    $playing=true
    $playsound=_SoundPlay($abspiel, 0)
    $lenght=_SoundLength($abspiel)
    $SoundPos=_SoundPos($abspiel, 1)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    AdlibRegister("_time", 1000)
    endif
    endif

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

    EndFunc

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

    func _Pause()
    _SoundPause($abspiel)
    EndFunc

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

    func _stop()
    _SoundStop($abspiel)
    $abspiel=""
    $playing=false
    GUICtrlSetData($label2, "00:00:00")
    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

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

    if FileExists("Radio.ini") then
    $res=IniReadSection("Radio.ini", "Stations")
    for $p = 1 to $res[0][0]
    guictrlcreatemenuitem($res[$p][1],$Radio)
    next
    endif
    EndFunc

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

    func _next()
    playbutton()
    Local $sel = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $sel[1] < (_GUICtrlListView_GetItemCount($listview1) -1) Then
    $sel[1] += 1
    Else
    $sel[1] = 0
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$sel[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    $playing=true
    $lenght=_SoundLength($abspiel)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    EndFunc

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

    func _back()
    playbutton()
    Local $sel = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $sel[1] > 0 Then
    $sel[1] -= 1
    Else
    $sel[1] = _GUICtrlListView_GetItemCount($listview1) -1
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$sel[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    $playing=true
    $lenght=_SoundLength($abspiel)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    EndFunc

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

    func playbutton()
    if $test = @ScriptDir & "\play.gif" Then
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    Endif
    Endfunc

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

    func pausebutton()
    if $test = @ScriptDir & "\pause.gif" then
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    endif
    EndFunc

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

    func search()
    $read = guictrlread($Search)
    $text = _GUICtrlListView_FindInText($ListView2, $read)
    $text1 = _GUICtrlListView_EnsureVisible($ListView2, $text)
    _GUICtrlListView_SetItemDropHilited($ListView2, $text1)
    EndFunc

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

    func addradio()
    $addRadioLink=InputBox("Link hinzufügen", "Geben Sie hier den Link zur Internetradiostation ein:","","",150,130)
    if FileExists("Radio.ini") then
    $res=IniReadSection("Radio.ini", "Stations")
    iniwrite("Radio.ini", "Stations", "Radio"&$res[0][0] + 1, $addRadioLink)
    Else
    iniwrite("Radio.ini", "Stations", "Radio1", $addRadioLink)
    endif
    EndFunc

    [/autoit]

    Sind noch folgende Fragen offen:
    - Blaue Hinterlegung bei Suche | Bei mehreren gleichen Suchbegriffen weiterspringen bei erneuter Betätigung der "Suchebutton"
    - Nächstes Lied, wenn eines zu Ende ist
    - Denkanstoß für einen Slider der den Liedfortschritt anzeigt sowie Spulen ermöglicht

  • Mp3 Player

    • descent
    • 15. Mai 2010 um 19:30

    hallo JuraX,

    die Fehlermeldung erscheint, da du nicht die Dateien der Buttons hast.
    Ich habe soeben versuch deinen Vorschlag mit der Funktion AdlibRegister umzusetzen, was leider nicht funktioniert. Kannst du dir vllt. anschauen, ob ich die Funktion falsch verwende?
    Komischerweise wird immer ein Teil des Liednamens hinter die "00:00:00" gesetzt, dies selbst ändert sich jedoch nicht.

    Funktion:

    Spoiler anzeigen
    [autoit]

    ...
    ...
    ...
    While 1
    AdlibRegister("_time", 1000)
    ...
    ...
    WEnd

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

    func _time()
    guictrlsetdata($label2,_SoundPos($abspiel))
    EndFunc

    [/autoit]

    Gesamtes 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 <GUIConstants.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Sound.au3>

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

    Global $abspiel,$titel
    $test = @ScriptDir & "\play.gif"

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

    $playing=false

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

    $Form1 = GUICreate("Form1", 610, 225, 209, 315)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    $pic1=GUICtrlCreatePic(@ScriptDir & "\next.gif", 560, 150, 36, 36)
    $pic2=GUICtrlCreatePic(@ScriptDir & "\back.gif", 410, 150, 36, 36)
    $pic3=GUICtrlCreatePic(@ScriptDir & "\stop.gif", 510, 150, 37, 37)
    $ListView1=GUICtrlCreateListView("Song|Pfad", 413, 50, 178, 75)
    $ListView2=GUICtrlCreateListView("Song|Pfad", 20, 50, 350, 135)
    $Search=GUICtrlCreateInput("",20, 17, 250, 20)
    $SearchButton=GUICtrlCreateButton("Suchen", 291, 17, 80, 20)
    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)
    $Radio=GUICtrlCreateMenu("Internetradio")
    $add=guictrlcreatemenuitem("Link hinzufügen",$Radio)
    guictrlcreatemenuitem("",$Radio)
    $Label=GUICtrlCreateLabel("00:00:00", 412, 1 ,100 ,100)
    $Label1=GUICtrlCreateLabel("Titel", 412, 14 ,150 ,100)
    $Label2=GUICtrlCreateLabel("00:00:00", 412, 27 ,43 ,12)
    GUISetState(@SW_SHOW)

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

    start()

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

    While 1
    AdlibRegister("_time", 1000)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_DROPPED
    $ar = _GUICtrlListView_GetSelectedIndices($listview2, True)
    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 $SearchButton
    search()
    case $add
    addradio()
    case $pic2
    _back()
    case $pic1
    _next()
    case $pic3
    _stop()
    pausebutton()
    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    if $playing = true then
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    endif
    else
    _pause()
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 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 _time()
    guictrlsetdata($label2,_SoundPos($abspiel))
    EndFunc

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

    func sound()
    $SongPlay=_GUICtrlListView_GetItemTextString($Listview1)
    $SongRoot=StringSplit($SongPlay, "|")
    if IsArray($abSpiel) then
    _SoundResume($abspiel)
    else
    $abspiel=_SoundOpen($SongRoot[2])
    if $abspiel="" Then
    Msgbox(4096,"Datei","Es wurde keine Datei ausgewählt")
    else
    $playing=true
    $playsound=_SoundPlay($abspiel, 0)
    $lenght=_SoundLength($abspiel)
    $SoundPos=_SoundPos($abspiel, 1)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    endif
    endif

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

    EndFunc

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

    func _Pause()
    _SoundPause($abspiel)
    EndFunc

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

    func _stop()
    _SoundStop($abspiel)
    $abspiel=""
    $playing=false
    GUICtrlSetData($label2, "00:00:00")
    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

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

    if FileExists("Radio.ini") then
    $res=IniReadSection("Radio.ini", "Stations")
    for $p = 1 to $res[0][0]
    guictrlcreatemenuitem($res[$p][1],$Radio)
    next
    endif
    EndFunc

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

    func _next()
    playbutton()
    Local $sel = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $sel[1] < (_GUICtrlListView_GetItemCount($listview1) -1) Then
    $sel[1] += 1
    Else
    $sel[1] = 0
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$sel[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    $playing=true
    $lenght=_SoundLength($abspiel)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    EndFunc

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

    func _back()
    playbutton()
    Local $sel = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $sel[1] > 0 Then
    $sel[1] -= 1
    Else
    $sel[1] = _GUICtrlListView_GetItemCount($listview1) -1
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$sel[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    $playing=true
    $lenght=_SoundLength($abspiel)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    EndFunc

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

    func playbutton()
    if $test = @ScriptDir & "\play.gif" Then
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    Endif
    Endfunc

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

    func pausebutton()
    if $test = @ScriptDir & "\pause.gif" then
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    endif
    EndFunc

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

    func search()
    $read = guictrlread($Search)
    $text = _GUICtrlListView_FindInText($ListView2, $read)
    $text1 = _GUICtrlListView_EnsureVisible($ListView2, $text)
    _GUICtrlListView_SetItemDropHilited($ListView2, $text1)
    EndFunc

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

    func addradio()
    $addRadioLink=InputBox("Link hinzufügen", "Geben Sie hier den Link zur Internetradiostation ein:","","",150,130)
    if FileExists("Radio.ini") then
    $res=IniReadSection("Radio.ini", "Stations")
    iniwrite("Radio.ini", "Stations", "Radio"&$res[0][0] + 1, $addRadioLink)
    Else
    iniwrite("Radio.ini", "Stations", "Radio1", $addRadioLink)
    endif
    EndFunc

    [/autoit]
  • Mp3 Player

    • descent
    • 15. Mai 2010 um 19:05

    hallo,
    ich bin gerade dabei ein Programm zum abspielen von .mp3 zu schreiben. Habe nun schon einiges geschafft, komme an manchen Punkten jedoch nicht mehr weiter.

    Zum einen flackert die Anzeige des Aktuellen Position im Lied. Ich vermute, dass dies von der Aktualisierung durch die While-Schlaufe kommt. Ich wollte dies mittels Sleep verlangsamen, kann dann jedoch nichts mehr im Programm klicken, da das komplette Script "stehen" bleibt.
    Auch habe ich eine Suchfunktion, welche soweit funktioniert, dass die den Suchbegriff in der ListView sucht, zu diesem springt, ihn jedoch nicht blau hinterlegt. Sollte der Begriff mehrfach in der List sein, so wir auch immer nur der erste angewählt und nicht zum nächsten übergesprungen.
    Dann habe ich noch das Problem, dass das Lied nicht umgeschalten wird, wenn es zu ende ist. Wollte dies über eine If-Abfrage der Aktuellen Position sowie der Gesamtlänge realisieren, was jedoch nicht hingehauen hat.
    Auch bräuchte ich noch einen Denkanstoß für einen Slider, welcher die aktuelle Position anzeigt und über den gespult werden kann.
    Die Webradiofunktion spielt hier keine Rolle.

    Ich bedanke mich bei allen fürs lesen und hoffe das mir der ein oder andere vllt auch helfen kann.

    Hier mein 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 <GUIConstants.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Sound.au3>

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

    Global $abspiel,$titel
    $test = @ScriptDir & "\play.gif"

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

    $playing=false

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

    $Form1 = GUICreate("Form1", 610, 225, 209, 315)
    ;~ $bg = GUICtrlCreatePic("bg.jpg", 0, 0, 0, 0)
    ;~ GUIctrlsetState($bg, $GUI_DISABLE)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    $pic1=GUICtrlCreatePic(@ScriptDir & "\next.gif", 560, 150, 36, 36)
    $pic2=GUICtrlCreatePic(@ScriptDir & "\back.gif", 410, 150, 36, 36)
    $pic3=GUICtrlCreatePic(@ScriptDir & "\stop.gif", 510, 150, 37, 37)
    $ListView1=GUICtrlCreateListView("Song|Pfad", 413, 50, 178, 75)
    $ListView2=GUICtrlCreateListView("Song|Pfad", 20, 50, 350, 135)
    $Search=GUICtrlCreateInput("",20, 17, 250, 20)
    $SearchButton=GUICtrlCreateButton("Suchen", 291, 17, 80, 20)
    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)
    $Radio=GUICtrlCreateMenu("Internetradio")
    $add=guictrlcreatemenuitem("Link hinzufügen",$Radio)
    guictrlcreatemenuitem("",$Radio)
    $Label=GUICtrlCreateLabel("00:00:00", 412, 1 ,100 ,100)
    $Label1=GUICtrlCreateLabel("Titel", 412, 14 ,150 ,100)
    $Label2=GUICtrlCreateLabel("00:00:00", 412, 27 ,43 ,12)
    GUISetState(@SW_SHOW)

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

    start()

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

    While 1
    if $playing = true Then
    guictrlsetdata($label2,_SoundPos($abspiel))
    EndIf

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $GUI_EVENT_DROPPED
    $ar = _GUICtrlListView_GetSelectedIndices($listview2, True)
    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 $SearchButton
    search()
    case $add
    addradio()
    case $pic2
    _back()
    case $pic1
    _next()
    case $pic3
    _stop()
    pausebutton()
    case $pic
    if $test = @ScriptDir & "\play.gif" Then
    sound()
    if $playing = true then
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    endif
    else
    _pause()
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 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]

    While 2
    Local $lenght, $SoundPos
    If $lenght = $SoundPos Then
    _next()
    endif
    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])
    if $abspiel="" Then
    Msgbox(4096,"Datei","Es wurde keine Datei ausgewählt")
    else
    $playing=true
    $playsound=_SoundPlay($abspiel, 0)
    $lenght=_SoundLength($abspiel)
    $SoundPos=_SoundPos($abspiel, 1)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    endif
    endif

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

    EndFunc

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

    func _Pause()
    _SoundPause($abspiel)
    EndFunc

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

    func _stop()
    _SoundStop($abspiel)
    $abspiel=""
    $playing=false
    GUICtrlSetData($label2, "00:00:00")
    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

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

    if FileExists("Radio.ini") then
    $res=IniReadSection("Radio.ini", "Stations")
    for $p = 1 to $res[0][0]
    guictrlcreatemenuitem($res[$p][1],$Radio)
    next
    endif
    EndFunc

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

    func _next()
    playbutton()
    Local $sel = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $sel[1] < (_GUICtrlListView_GetItemCount($listview1) -1) Then
    $sel[1] += 1
    Else
    $sel[1] = 0
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$sel[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    $playing=true
    $lenght=_SoundLength($abspiel)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    EndFunc

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

    func _back()
    playbutton()
    Local $sel = _GUICtrlListView_GetSelectedIndices($listview1,True)
    if $sel[1] > 0 Then
    $sel[1] -= 1
    Else
    $sel[1] = _GUICtrlListView_GetItemCount($listview1) -1
    EndIf
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    _GUICtrlListView_SetItemSelected ($ListView1, $sel[1])
    $SongRoot=_GUICtrlListView_GetItemTextArray($Listview1,$sel[1])
    if IsArray($abSpiel) Then _SoundStop($abspiel)
    $abspiel=_SoundOpen($SongRoot[2])
    $playsound=_SoundPlay($abspiel, 0)
    $playing=true
    $lenght=_SoundLength($abspiel)
    GUICtrlSetData($label, $lenght)
    guictrlsetdata($Label1, $SongRoot[1])
    EndFunc

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

    func playbutton()
    if $test = @ScriptDir & "\play.gif" Then
    $test = @ScriptDir & "\pause.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    Endif
    Endfunc

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

    func pausebutton()
    if $test = @ScriptDir & "\pause.gif" then
    $test = @ScriptDir & "\play.gif"
    GUICtrlDelete($pic)
    $pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
    endif
    EndFunc

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

    func search()
    $read = guictrlread($Search)
    $text = _GUICtrlListView_FindInText($ListView2, $read)
    $text1 = _GUICtrlListView_EnsureVisible($ListView2, $text)
    _GUICtrlListView_SetItemDropHilited($ListView2, $text1)
    EndFunc

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

    func addradio()
    $addRadioLink=InputBox("Link hinzufügen", "Geben Sie hier den Link zur Internetradiostation ein:","","",150,130)
    if FileExists("Radio.ini") then
    $res=IniReadSection("Radio.ini", "Stations")
    iniwrite("Radio.ini", "Stations", "Radio"&$res[0][0] + 1, $addRadioLink)
    Else
    iniwrite("Radio.ini", "Stations", "Radio1", $addRadioLink)
    endif
    EndFunc

    [/autoit]
  • Hilfestellung zu den Befehl "_FFFormSubmit " unter Firefox

    • descent
    • 15. Mai 2010 um 17:03

    Ich würde es über _FFXPath versuchen.

    [autoit]

    _FFClick(_FFXPath("/html/body/div[@id='content-aussen']/div[@id='content']/table/tbody/tr/td[5]/div[2]/form/table/tbody/tr[2]/td[3]/input","",9))

    [/autoit]

    hab´s nicht getestet

  • _SoundPause

    • descent
    • 13. Mai 2010 um 18:40

    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.

  • _SoundPause

    • descent
    • 13. Mai 2010 um 18:12

    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.

  • _SoundPause

    • descent
    • 13. Mai 2010 um 17:40

    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.

  • _SoundPause

    • descent
    • 13. Mai 2010 um 17:11

    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]
  • _SoundPause

    • descent
    • 13. Mai 2010 um 16:28

    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

  • _SoundPause

    • descent
    • 12. Mai 2010 um 21:01

    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?

  • _SoundPause

    • descent
    • 12. Mai 2010 um 19:24

    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?

  • Datei suchen + einlesen

    • descent
    • 12. Mai 2010 um 19:14

    Danke AspirinJunkie, genau das habe ich gesucht

  • Datei suchen + einlesen

    • descent
    • 10. Mai 2010 um 22:49

    Hallo,
    ich versuche einen Ordner mit Unterordner nach einem bestimmten Dateityp zu durchsuchen. Dieser Ordner soll frei wählbar sein und alle Pfade der gefundenen Dateien in eine Datei speichern, damit ich diese in eine ListView einlesen kann. Jedoch habe ich keine Ahnung, wie ich dies realisieren kann. Ich hatte es schon so weit, dass ich einen einzelnen Ordner durchsuchen konnte, die Unterordner jedoch unbeachtet blieben.
    Wenn mir jemand einen Denkanstoß mit einem Befehl geben könnte, würde ich mich freuen.
    Danke schon mal im Voraus für eure Mühe dies zu lesen und hoffe ihr könnt mir weiterhelfen.

  • Progressbar/PDF/ListView

    • descent
    • 1. Mai 2010 um 16:28

    Ok danke, werd mir das gleich mal anschauen.
    Das mit SQL habe ich mir auch schon überlegt. Habe hier nur das Problem das ich nicht weiß wie ich alle Einträge von der PDF bzw wenn ich es umwandel der Textdatei ind die SQL -DAtenbank übertragen soll.

  • Progressbar/PDF/ListView

    • descent
    • 1. Mai 2010 um 16:03

    D.h. wenn ich die PDF in eine Textdatei umwandle, dann kann ich eine Normale Textdatei als Datenbank nutzen? Wenn ja, vermute ich, dass die Textdatei dann als Array eingelesen wird. Muss dann jeder Eintrag in einer extra Zeile sein? Ich habe nämlich unterschiedliche Zeilen im Listview, in welche die Daten eingeordnet werden sollen. Wie soll ich das dann machen? Muss ich dies dann über Stringsplit aufteilen?

    Habe mal kurz ein GUI erstellt um zu verdeutlichen, wie das ganze ungefähr aussehen soll.

    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 <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 730, 587, 170, 78)
    $Tab1 = GUICtrlCreateTab(0, 8, 729, 577)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem(" Preisliste ")
    $ListView1 = GUICtrlCreateListView("Arikelnummer|Bezeichnung|Menge|Preis", 8, 88, 706, 486)
    $Input1 = GUICtrlCreateInput("", 8, 48, 121, 21)
    $Button1 = GUICtrlCreateButton("Suchen", 136, 46, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Übertragen", 240, 46, 75, 25, 0)
    $TabSheet2 = GUICtrlCreateTabItem(" Auswahl ")
    $ListView2 = GUICtrlCreateListView("Arikelnummer|Bezeichnung|Menge|Preis", 8, 88, 706, 486)
    $Button3 = GUICtrlCreateButton("Löschen", 8, 46, 75, 25, 0)
    $Button4 = GUICtrlCreateButton("Liste >> Excel", 104, 46, 91, 25, 0)
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
  • Progressbar/PDF/ListView

    • descent
    • 1. Mai 2010 um 15:36

    Hallo
    ich habe vor, ein neues kleines Programm zu schreiben, jedoch haben sich mir schon in der Planung einige Fragen aufgetan, welche ich teilweise selbst lösen konnte, andere wiederum nicht.
    Das Programm soll eine Preisliste, welche sozusagen meine Datenbank ist, in eine ListView einlesen. Diese möchte ich später nach bestimmten Stichwörtern durchsuchen können, um direkt zum richtige Artikel zu gelangen. Diesen möchte ich dann durch das klicken eines Button auf eine 2te ListView übertragen, auf welcher ich die benötigten Artikel sammle. Wenn die Liste fertig ist, möchte ich diese in eine Exceldatei übertragen.
    Hierbei habe ich folgende Probleme, die ich nicht selbst lösen kann:
    1. Die Preisliste ist eine PDF-Datei. Kann ich von Dort Texte an einer bestimmten Stelle einlesen? Die Datei besitzt ~140 Seiten und es wäre daher sehr Zeitaufwenid diese beispielsweise manuell in ein anderes Format umzuwandeln.
    2. Wie übertrage ich ein Listvieweintrag von einer zur anderen ListView?
    3. Wie kann ich durch Eingabe eines Suchbegriffes in einer Inputbox direkt zum gewünschten Eintrag gelangen?

  • Progress befehl geben

    • descent
    • 1. Mai 2010 um 13:16

    Denke das hier könnte sehr hilfreich sein, wenn ich deine Frage richtig verstanden habe.

  • _FFXPath

    • descent
    • 1. Mai 2010 um 13:02

    Danke, funktioniert 1A :)

    hat vllt. noch jemand eine Idee für mein anderes Problem?
    Wenn dazu der komplette Quelltext benötigt wird, kann ich diesen auch noch einstellen^^

  • _ArrayDisplay verursacht Absturz von AutoIT

    • descent
    • 30. April 2010 um 15:09

    Hast du die Array.au3 included?

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™