Da ich in letzter Zeit instabiles Internet hatte ,
habe ich mich gut mit Musik zugedröhnt.
Dann kam ich auf die Idee nen Musikspieler zu machen,
der vor allem eins können sollte:
Den Computer um eine bestimmte Zeit herunterfahren.
Nun,hier habe ich ihn,Version 1.8:
ZitatAlles anzeigen
Features:-Kein Microsoftprodukt
-besseres Visual
-Abspieloptionen Alphabetisch & Zufall
-Direktabspielen per Kontextmenü
-Timer,damit sich der Computer um eine bestimmte Uhrzeit herunterfährt
-Playlist kann exportiert werden & wieder geöffnet werden
-Keine unnötigen Funktionen
Weitere Informationen und Downloads gibt es auf der Homepage
Download:
Angehängt
Und wer Ideen hat,nur her damit,würde gerne noch mehr hinzufügen,habe gerade nur keine Ideen
Quellcode: Angehängt und siehe unten
Spoiler anzeigen
#AutoIt3Wrapper_Res_LegalCopyright Nicolas Giese
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <String.au3>
#include <array.au3>
#include <Sound.au3>
#include <EditConstants.au3>
#include <file.au3>
;Spuren löschen
Opt("OnExitFunc","OnExit")
;um das standart traymenü wegzubekommen
Opt("TrayAutoPause",0)
Opt("TrayMenuMode",1)
;Debugging,meist deaktiviert
;Opt("TrayIconDebug",1)
;playlist löschen (wichtig,falls abgebrochen gestartet wurde)
FileDelete(@Tempdir & "\soundfiles.txt")
#Region Variable
$space = " "
;gebraucht um die gesamte Statusbar grau zu färben
$loop1 = 0
$readnumber = 1
Global $readsoundplay
Global $openedsoundfile
Global $paused = 0
Global $stopped = 0
Global $loop
Global $timer = 0
Global $onesound = 0
Global $visualnumber
Global $lastsong = "firstplay"
Global $optionplay = 1 ;1 = Zufall, 2 = Alphabetisch/Liste
Global $aktuelleslied = 1
$version = "1.8"
[/autoit] [autoit][/autoit] [autoit];um da verschiedene Werte zu speichern
RegWrite("HKEY_CURRENT_USER\Software\NMW")
#EndRegion
;region ,du darfst nicht weiter nach unten
;traytooltip default setzen (bis zum starten der musik)
TraySetToolTip("Nicksoft Media Player " & $version & @crlf & "Warten auf Musik...")
;Traymenü erstellen für bessere Handlichkeit
#Region CreateTray
$trayinfo = TrayCreateItem("Info")
;strich im menü
TrayCreateItem("")
$trayplay = TrayCreateItem("Play")
TrayCreateItem("")
$trayexit = TrayCreateItem("Exit")
#EndRegion
;und wieder ein stop fürs endregion
;visual auswählen
choosevisual()
$gui = GUICreate("Nicksoft Media Player " & $version,500,400)
;Farbe
GUISetBkColor(0x828AAC)
; Musikdateien auflisten ; liste,kein edit (mehr),da keine direktwahl gemacht werden kann
$list = GUICtrlCreateList("Nothing selected",5,10,150,350)
$listmenu = GUICtrlCreateContextMenu($list)
$listitem1 = GUICtrlCreateMenuItem("Play",$listmenu)
;Menü
$filemenu = GUICtrlCreateMenu("&File")
$fileitem = GUICtrlCreateMenuItem("Open", $filemenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
$saveitem = GUICtrlCreateMenuItem("Save", $filemenu)
GUICtrlSetState(-1, $GUI_DISABLE)
$infomenu = GUICtrlCreateMenu("?")
$infoitem = GUICtrlCreateMenuItem("Info",$infomenu)
$howtoplay1song = GUICtrlCreateMenuItem("Wie spiele ich Lieder direkt?",$infomenu)
;NEU -> Timer bis zum Herunterfahren von Windows
$timermenu = GUICtrlCreateMenu("Timer")
$timeritem = GUICtrlCreateMenuItem("Shutdowntimer",$timermenu)
;NEU -> Zufall oder Listenspielart wählbar
$playoption = GUICtrlCreateMenu("Optionen")
$randomitem = GUICtrlCreateMenuItem("Zufällig",$playoption)
GUICtrlSetState($randomitem, $GUI_CHECKED)
GUICtrlSetState($randomitem, $GUI_DISABLE)
$abcitem = GUICtrlCreateMenuItem("Alphabetisch",$playoption)
;Statusbar
;Anzeige für aktuell spielendes Lied ist in der Statusbar !
$statuslabel = GUICtrlCreateLabel("Ready" & $space,0,365,500,15,BitOR($SS_SIMPLE, $SS_SUNKEN))
GUICtrlSetBkColor($statuslabel,0xE0DFE3)
;Start + Pause + Stop
$start = GUICtrlCreateButton(">",165,330,100,25)
GUICtrlSetState(-1, $GUI_DISABLE)
$pause = GUICtrlCreateButton(":",270,330,100,25)
GUICtrlSetState(-1, $GUI_DISABLE)
$stop = GUICtrlCreateButton("Stop",375,330,100,25)
GUICtrlSetState(-1, $GUI_DISABLE)
;Visualisierung
GUICtrlCreateGroup("Visual",165,25,320,200)
$visual = GUICtrlCreateAvi($visualnumber,-1,180,50,150,150)
;volumen
GUICtrlCreateGroup("Volumen",165,270,320,50)
$volume = GUICtrlCreateSlider(170,285,300,25)
;färben
GUICtrlSetBkColor(-1,0x828AAC)
;0-100 = 100% und saubere schritte
GUICtrlSetLimit($volume,100,0)
;Default auf vollem Volumen
GUICtrlSetData($volume,100)
GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
$tray = TrayGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE ;wenn Fenster geschlossen wurde
;hinweis,dass der Tiomer nach schließen nichtmehr Funktioniert
If $timer = 1 Then
;4 = yes & No,32 = Fragezeichen
$msgbox = MsgBox(4 + 32,"NIcksoft Media Player schließen","Der Shutdowntimer wurde aktiviert !" & @crlf & "Wenn Sie den Player beenden, funktioniert diese Funktion nicht mehr !" & @crlf & @crlf & "Möchten Sie wirklich beenden?")
;wenn nein gedrückt wurde:
If $msgbox = 7 Then
;zurückkehren
ExitLoop
EndIf
EndIf
Exit
Case $msg = $fileitem
open()
openbuttons()
Case $msg = $infoitem
MsgBox(0,"Info","Von Nicksoft (2008)" & @crlf & "Version: " & $version )
Case $msg = $howtoplay1song
MsgBox(0,"Wie spiele ich einen einzelnen Song aus der Playlist?","Markiere mit der Maus ein Lied und " & @crlf & "öffne dann das Kontextmenü. (Rechtsklick)")
Case $msg = $start
start()
Case $msg = $pause
pause()
Case $msg = $stop
stop()
Case $msg = $timeritem
$zeitexample = @HOUR & ":" & @MIN
$zeit = InputBox("Shutdowntimer","Mit dieser Funktion kann sich ihr Windows um eine bestimmte Zeit herunterfahren." & @crlf & "Es ist zur Zeit : " & $zeitexample & @crlf & "Nach diesem Muster geben Sie bitte die Zieluhrzeit ein:","","",300,200)
GUICtrlSetState($timeritem, $GUI_CHECKED)
If @error Then ContinueLoop
$timer = 1
Case $msg = $listitem1
contextlist()
Case $msg = $saveitem
playlistspeichern()
Case $msg = $abcitem ;auf liste umgestellt
changetolist()
Case $msg = $randomitem
changetorandom()
Case $tray = $trayinfo
MsgBox(0,"Info","Von Nicksoft (2008)" & @crlf & "Version: " & $version )
Case $tray = $trayplay
open()
openbuttons()
Case $tray = $trayexit
Exit
Case Else
volume()
If $timer = 1 Then
If @hour & ":" & @MIN = $zeit Then
Shutdown(5)
Exit
EndIf
EndIf
EndSelect
WEnd
; FUNKTIONEN
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; - GUIFUNKTIONEN
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func open()
;Datei aussuchen, mehrfachauswahl
$fileselect = FileOpenDialog("Choose Music",@Desktopdir,"Music & NMP-Playlist (*.mp3;*.wma;*.wav;*.nmp)",1 + 4)
;wenn abgebrochen wurde:
If @error Then Return
;gucken ob Playlist
$look1 = StringInStr($fileselect,".nmp")
If $look1 > 1 Then
;Datei an Playlistort kopieren & zurückbennen
FileCopy($fileselect,@Tempdir & "\soundfiles.txt")
;warten bis fertig kopiert
Do
Sleep(100)
Until FileExists(@Tempdir & "\soundfiles.txt")
;schleife um alle Einträge in die Liste einzutragen
;-------
$loopsearch = 2
;-------/
Do
$read = FileReadLine(@Tempdir & "\soundfiles.txt",$loopsearch)
If @error Then ExitLoop
If $read = "" Then ExitLoop
GUICtrlSetData($list,$read)
$loopsearch = $loopsearch + 1
Until @error
start()
Else
;gucken ob nur einzelauswahl
$look = StringInStr($fileselect,"|")
If $look > 1 Then
;mehrfachauswahl zurecht stutzen
#Region imported
$durchsuchen1 = StringReplace($fileselect, "|", @CRLF)
FileWriteLine(@Tempdir & "\search.tmp",$durchsuchen1)
;-------
$loopsearch = 2
;-------/
$read1stlinesearch = FileReadLine(@Tempdir & "\search.tmp",1)
Do
$readxlinesearch = FileReadLine(@Tempdir & "\search.tmp",$loopsearch)
$err = @error
$loopsearch = $loopsearch + 1
If $readxlinesearch = "" Then
FileDelete(@Tempdir & "\search.tmp")
ExitLoop
EndIf
GUICtrlSetData($list,$readxlinesearch,-1)
FileWriteLine(@Tempdir & "\soundfiles.txt",$read1stlinesearch & "\" & $readxlinesearch & @CRLF) ;da z.Zeit liste,kein edit ist,wird playlist gespeichert
Until $err = -1
#EndRegion
start()
Else
;wenn vorher nur ein lied,jetzt zurücksetzen (playlist wird ja geschrieben)
$onesound = 0
;bisherige Musik stoppen
_SoundClose($openedsoundfile)
AdlibDisable()
;neue Datei öffnen & abspielen
$openedsoundfile = _SoundOpen($fileselect)
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;datei auf edit setzen
GUICtrlSetData($list,$fileselect)
;visual aktivieren
GUICtrlSetState($visual,1)
;lied in statusbar schreiben
status($fileselect)
;markieren als besonderes event
$onesound = 1
EndIf
;playlist speichern jetzt möglich machen
GUICtrlSetState($saveitem,$GUI_ENABLE)
Endif
EndFunc
;alle knöpfe freischalten
Func openbuttons()
GUICtrlSetState($pause, $GUI_ENABLE)
;bis stoptaste wieder funktioniert wird sie deaktiviert
GUICtrlSetState($stop, $GUI_ENABLE)
EndFunc
;wenn der startknopf gedrückt wurde....
Func start()
;startknopf wieder deaktivieren
GUICtrlSetState($start, $GUI_DISABLE)
;falls aus einer pause gestartet wurde -> forfahren
If $paused = 1 Then
$paused = 0
fortfahren()
Return
EndIf
;Wieviele Lieder sind in in der Playlist gespeichert ? (1 Linie = 1 Pfad zu 1 Lied)
Countlines()
;maximale Anzahl der Lieder speichern für zufallsauswahl
RegWrite("HKEY_CURRENT_USER\Software\NMW","lines","REG_SZ",$loop)
;visual aktivieren
GUICtrlSetState($visual,1)
;lieder abspielen starten
If $optionplay = 1 Then
AdlibEnable("playsound")
Else
AdlibEnable("playsoundlist")
EndIf
EndFunc
;wenn pause gedrückt wurde
Func pause()
;sound nicht mehr abspielen
AdlibDisable()
_SoundPause($openedsoundfile)
;merken -> nur pause
$paused = 1
;visual pausieren
GUICtrlSetState($visual,0)
;in statusbar eintragen
status("paused")
;startknopf aktivieren
GUICtrlSetState($start, $GUI_ENABLE)
EndFunc
Func stop()
;abspielen beenden
AdlibDisable()
_SoundClose($openedsoundfile)
;in der statusbar als gestoppt anzeigen
status("stopped" & $space)
;merken -> nur stop
Global $stopped = 1
;visual pausieren
GUICtrlSetState($visual,0)
;startknopf aktivieren
GUICtrlSetState($start, $GUI_ENABLE)
;in trayicon anzeigen
TraySetToolTip("Gestoppt")
EndFunc
Func contextlist()
;markierten eintrag auslesen
$read = GUICtrlRead($list)
;falls kein Lied ausgewählt wurde
If $read = "Nothing selected" Or "" Then
MsgBox(0,"Nicksoft Media Player","Bitte wählen Sie ein Musiktitel aus!")
Return
EndIf
;sound stoppen
_SoundStop($openedsoundfile)
;ausgelesenes öffnen
$openedsoundfile = _SoundOpen($read)
;ausgelesenes starten
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;zur weiterverarbeitung den Eintrag in der Playlist suchen und Zeile speichern
$detectline = 1
Do
$readcontext = FileReadLine(@Tempdir & "\soundfiles.txt",$detectline)
$stringstr = StringInStr($readcontext,$read)
$detectline = $detectline + 1
Until $stringstr > 1
;für alphabet-abspielung speichern
$aktuelleslied = $detectline
;statusbar eintragen
status($readcontext)
;danach soll ja weitergemacht werden ! :
;erst bisheriges stoppen (falls es schon lief)
AdlibDisable()
If $optionplay = 1 Then
;dann neustarten
AdlibEnable("playsound")
Else
AdlibEnable("playsoundlist")
EndIf
EndFunc
Func playlistspeichern()
;speicherort auswählen lassen
$saveplaylist = FileSaveDialog("Playlist speichern",@Desktopdir,"NMP-Playlist (*.nmp)")
;wenn abgebrochen wurde zurückkehren
If @error Then Return
FileCopy(@Tempdir & "\soundfiles.txt",$saveplaylist & ".nmp",1)
;playlist speichern jetzt nichtmehr möglich machen
GUICtrlSetState($saveitem,$GUI_DISABLE)
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func changetolist()
$optionplay = 2
;option random wieder einblenden
GUICtrlSetState($randomitem, $GUI_UNCHECKED)
GUICtrlSetState($randomitem, $GUI_ENABLE)
;option ausblenden
GUICtrlSetState($abcitem, $GUI_CHECKED)
GUICtrlSetState($abcitem, $GUI_DISABLE)
EndFunc
Func changetorandom()
$optionplay = 1
;option list wieder einblenden
GUICtrlSetState($abcitem, $GUI_UNCHECKED)
GUICtrlSetState($abcitem, $GUI_ENABLE)
;option ausblenden
GUICtrlSetState($randomitem, $GUI_CHECKED)
GUICtrlSetState($randomitem, $GUI_DISABLE)
EndFunc
; -andere Funktionen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];schnell statusbar beschreiben
Func status($titel)
GUICtrlSetData($statuslabel,$titel & $space) ;$space um statusbar immer grau zu hinterlegen
EndFunc
;adlib funktion um zu sehen,ob noch eine Datei gespielt wird (wenn nötig nächstes stück laden)
Func playsound()
;wenn option geändert wurde
If $optionplay <> 1 Then
AdlibDisable()
AdlibEnable("playsoundlist")
EndIf
;auslesen des Status des aktuellen Musikstückes
$status = _SoundStatus($openedsoundfile)
If not FileExists(@Tempdir & "\soundfiles.txt") Then
MsgBox(16,"Error","Playlist konnte nicht gefunden werden.")
Exit
EndIf
;wenn das der erste start ist :
If $readsoundplay = "" Then
;auslesen der anzahl der lieder
$maxline = RegRead("HKEY_CURRENT_USER\Software\NMW","lines")
;schleife , um gegen "Leere Zeile" vorzubeugen
Do
;zufallslinie auswählen von 1 bis zu der letzten zeile (registry ausgelesen)
$randomline = Round(Random(1,$maxline))
;aus der playlist irgendeine Zeile auswählen
$readsoundplay = FileReadLine(@Tempdir & "\soundfiles.txt",$randomline)
;bis variable nicht leer ist
Until $readsoundplay <> ""
;diesen Pfad einlesen & öffnen (ID bekommen)
$openedsoundfile = _SoundOpen($readsoundplay)
;für das umstellen auf alphabetisch wird die Linie gespeichert
$aktuelleslied = $randomline + 1
;letztes lied speichern (nicht 2x das gleiche lied hinternander)
$lastsong = $openedsoundfile
;lied in die statusbar schreiben
status($readsoundplay)
;lied abspielen
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;trayinfo anzeigen
TraySetToolTip($readsoundplay)
ElseIf $status = "stopped" Then
;da zur Zeit Fehler unbekannt neue Art=
If $stopped = 1 Then
MsgBox(0,"test;func fortfahrenstopp","runned")
;stoppmarkierung entfernen
$stopped = 0
;s.o.
$maxline = RegRead("HKEY_CURRENT_USER\Software\NMW","lines")
;schleife , um gegen "Leere Zeile" vorzubeugen
Do
;s.o.
$randomline = Round(Random(1,$maxline))
;aus der playlist irgendeine Zeile auswählen
$readsoundplay = FileReadLine(@Tempdir & "\soundfiles.txt",$randomline)
;wenn variable nicht leer ist
If $readsoundplay <> "" Then
;und nicht der letzte song von vorhin war
If $readsoundplay <> $lastsong Then
;dann fahre fort
ExitLoop
EndIf
EndIf
Until @error
;s.o.
$openedsoundfile = _SoundOpen($readsoundplay)
;für das umstellen auf alphabetisch wird die Linie gespeichert
$aktuelleslied = $randomline + 1
;letztes lied speichern (nicht 2x das gleiche lied hinternander)
$lastsong = $openedsoundfile
;s.o.
status($readsoundplay)
;s.o.
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;trayinfo anzeigen
TraySetToolTip($readsoundplay)
$readsoundplay
Else
;letzte sounddatei schließen
_SoundClose($openedsoundfile)
;s.o.
$maxline = RegRead("HKEY_CURRENT_USER\Software\NMW","lines")
;schleife , um gegen "Leere Zeile" vorzubeugen
Do
;s.o.
$randomline = Round(Random(1,$maxline))
;aus der playlist irgendeine Zeile auswählen
$readsoundplay = FileReadLine(@Tempdir & "\soundfiles.txt",$randomline)
;wenn variable nicht leer ist
If $readsoundplay <> "" Then
;und nicht der letzte song von vorhin war
If $readsoundplay <> $lastsong Then
;dann fahre fort
ExitLoop
EndIf
EndIf
Until @error
;s.o.
$openedsoundfile = _SoundOpen($readsoundplay)
;für das umstellen auf alphabetisch wird die Linie gespeichert
$aktuelleslied = $randomline + 1
;letztes lied speichern (nicht 2x das gleiche lied hinternander)
$lastsong = $openedsoundfile
;s.o.
status($readsoundplay)
;s.o.
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;trayinfo anzeigen
TraySetToolTip($readsoundplay)
EndIf
Else
If $stopped = 1 Then
;stoppmarkierung entfernen
$stopped = 0
;s.o.
$maxline = RegRead("HKEY_CURRENT_USER\Software\NMW","lines")
;schleife , um gegen "Leere Zeile" vorzubeugen
Do
;s.o.
$randomline = Round(Random(1,$maxline))
;aus der playlist irgendeine Zeile auswählen
$readsoundplay = FileReadLine(@Tempdir & "\soundfiles.txt",$randomline)
;wenn variable nicht leer ist
If $readsoundplay <> "" Then
;dann fahre fort
ExitLoop
EndIf
Until @error
;s.o.
$openedsoundfile = _SoundOpen($readsoundplay)
;für das umstellen auf alphabetisch wird die Linie gespeichert
$aktuelleslied = $randomline + 1
;letztes lied speichern (nicht 2x das gleiche lied hinternander)
$lastsong = $openedsoundfile
;s.o.
status($readsoundplay)
;s.o.
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;trayinfo anzeigen
TraySetToolTip($readsoundplay)
EndIf
EndIf
EndFunc
;wird aufgerufen,falls nichts gedrückt wurde (Konflikt mit Adlib funktion playsound)
Func volume()
;slider auslesen
$read = GUICtrlRead($volume)
;wert einstellen
SoundSetWaveVolume($read)
EndFunc
Func OnExit()
;Registrywerte löschen
RegDelete("HKEY_CURRENT_USER\Software\NMW")
;lied beenden
_SoundClose($openedsoundfile)
;playlist löschen (wichtig)
FileDelete(@Tempdir & "\soundfiles.txt")
EndFunc
;wenn lied als gepaust gemerkt wurde:
Func fortfahren()
;mit lied fortfahren
_SoundResume($openedsoundfile)
;falls nur eine musikdatei gespielt wird,gibt es (logischerweise) keine Playlist !
If $onesound = 1 Then
AdlibEnable("playsound")
Else
AdlibEnable("playsoundlist")
EndIf
status($readsoundplay)
;visual aktivieren
GUICtrlSetState($visual,1)
EndFunc
;linien der Playlist zählen:
Func Countlines()
;initialisiere zählen
$countlines1 = 1
;schleife:
Do
;x.-te Zeile auslesen
FileReadLine(@Tempdir & "\soundfiles.txt",$countlines1)
;errormarkierung speichern (da sonst verfällt)
$err = @error
;variable raufzählen
$countlines1 = $countlines1 + 1
;schleife bis @error = -1 (Dateiende)
Until $err = -1 Or $countlines1 > 1000
;endergebnis speichern
$loop = $countlines1
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];zufallsvisual auswählen & in variable speichern
Func choosevisual()
$result = Round(Random(1,4))
$visualnumber = "visual.avi"
EndFunc
;adlib funktion um nach liste zu spielen (unterschied zu dem zufallsabspielen)
Func playsoundlist()
;wenn option geändert wurde
If $optionplay <> 2 Then
AdlibDisable()
AdlibEnable("playsound")
EndIf
;auslesen des Status des aktuellen Musikstückes
$status = _SoundStatus($openedsoundfile)
If not FileExists(@Tempdir & "\soundfiles.txt") Then
MsgBox(16,"Error","Playlist konnte nicht gefunden werden.")
Exit
EndIf
;wenn das der erste start ist :
If $readsoundplay = "" Then
;auslesen der anzahl der lieder
$maxline = RegRead("HKEY_CURRENT_USER\Software\NMW","lines")
;schleife , um gegen "Leere Zeile" vorzubeugen
Do
;aus der playlist die nächste zeile auswähen
$readsoundplay = FileReadLine(@Tempdir & "\soundfiles.txt",$aktuelleslied)
;für nächsten start nachsehen
$aktuelleslied = $aktuelleslied + 1
;bis variable nicht leer ist
Until $readsoundplay <> ""
;diesen Pfad einlesen & öffnen (ID bekommen)
$openedsoundfile = _SoundOpen($readsoundplay)
;letztes lied speichern (nicht 2x das gleiche lied hinternander)
$lastsong = $openedsoundfile
;lied in die statusbar schreiben
status($readsoundplay)
;lied abspielen
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;trayinfo anzeigen
TraySetToolTip($readsoundplay)
;wenn die position des liedes = maximallänge ist:
ElseIf $status = "stopped" Then
;letzte sounddatei schließen
_SoundClose($openedsoundfile)
;s.o.
$maxline = RegRead("HKEY_CURRENT_USER\Software\NMW","lines")
;schleife , um gegen "Leere Zeile" vorzubeugen
Do
$readsoundplay = FileReadLine(@Tempdir & "\soundfiles.txt",$aktuelleslied)
;wenn das letzte lied gespielt wurde :
If @error Then
MsgBox(64,"Playlist beendet","Playlist ist nun einmal durchgelaufen!")
Return
EndIf
$aktuelleslied = $aktuelleslied + 1
;wenn variable nicht leer ist
If $readsoundplay <> "" Then
;und nicht der letzte song von vorhin war
If $readsoundplay <> $lastsong Then
;dann fahre fort
ExitLoop
EndIf
EndIf
Until @error
;s.o.
$openedsoundfile = _SoundOpen($readsoundplay)
;letztes lied speichern (nicht 2x das gleiche lied hinternander)
$lastsong = $openedsoundfile
;s.o.
status($readsoundplay)
;s.o.
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;trayinfo anzeigen
TraySetToolTip($readsoundplay)
Else
If $stopped = 1 Then
;stoppmarkierung entfernen
$stopped = 0
;s.o.
$maxline = RegRead("HKEY_CURRENT_USER\Software\NMW","lines")
;schleife , um gegen "Leere Zeile" vorzubeugen
Do
$readsoundplay = FileReadLine(@Tempdir & "\soundfiles.txt",$aktuelleslied)
$aktuelleslied = $aktuelleslied + 1
;wenn variable nicht leer ist
If $readsoundplay <> "" Then
;und nicht der letzte song von vorhin war
If $readsoundplay <> $lastsong Then
;dann fahre fort
ExitLoop
EndIf
EndIf
Until @error
;s.o.
$openedsoundfile = _SoundOpen($readsoundplay)
;letztes lied speichern (nicht 2x das gleiche lied hinternander)
$lastsong = $openedsoundfile
;s.o.
status($readsoundplay)
;s.o.
_SoundPlay($openedsoundfile)
If @error Then
MsgBox(32,"Error","Konnte Musikdatei nicht abspielen !")
stop()
Return
EndIf
;trayinfo anzeigen
TraySetToolTip($readsoundplay)
EndIf
EndIf
EndFunc
Habe es extra ganz viel Kommentiert,da ich es dann in naher Zukunft wieder verstehe bzw. ein bekannter von mir versucht auch AutoIt zu lernen, vielleicht hilft ihm das !