Müsste so funktionieren:
[autoit]GUICtrlCreateListViewItem("Firefox|Aktiv",$ListView)
[/autoit]Müsste so funktionieren:
[autoit]GUICtrlCreateListViewItem("Firefox|Aktiv",$ListView)
[/autoit]Stimmt du hast recht, danke dir.
So funktioniert es nun:
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.0
Author: myName
Script Function:
Template AutoIt script.
#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>
Global $abspiel,$titel
$test = @ScriptDir & "\play.gif"
$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)
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
func _time()
if $playing = true then
$soundpos=_SoundPos($abspiel)
guictrlsetdata($label2,$soundpos)
EndIf
EndFunc
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
EndFunc
[/autoit] [autoit][/autoit] [autoit]func _Pause()
_SoundPause($abspiel)
EndFunc
func _stop()
_SoundStop($abspiel)
$abspiel=""
$playing=false
GUICtrlSetData($label2, "00:00:00")
EndFunc
func media($sSD, Const $sPat = '', Const $iF = 3)
Local $sRet = "", $sSubD = '|' & $sSD
Local $FFFF, $FFNF, $sDir, $iC
Local $aD, $hDLL = DllOpen('kernel32.dll')
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
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
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
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
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
func playbutton()
if $test = @ScriptDir & "\play.gif" Then
$test = @ScriptDir & "\pause.gif"
GUICtrlDelete($pic)
$pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
Endif
Endfunc
func pausebutton()
if $test = @ScriptDir & "\pause.gif" then
$test = @ScriptDir & "\play.gif"
GUICtrlDelete($pic)
$pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
endif
EndFunc
func search()
$read = guictrlread($Search)
$text = _GUICtrlListView_FindInText($ListView2, $read)
$text1 = _GUICtrlListView_EnsureVisible($ListView2, $text)
_GUICtrlListView_SetItemDropHilited($ListView2, $text1)
EndFunc
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
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
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:
...
...
...
While 1
AdlibRegister("_time", 1000)
...
...
WEnd
func _time()
guictrlsetdata($label2,_SoundPos($abspiel))
EndFunc
Gesamtes Script:
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.0
Author: myName
Script Function:
Template AutoIt script.
#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>
Global $abspiel,$titel
$test = @ScriptDir & "\play.gif"
$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)
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
func _time()
guictrlsetdata($label2,_SoundPos($abspiel))
EndFunc
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
EndFunc
[/autoit] [autoit][/autoit] [autoit]func _Pause()
_SoundPause($abspiel)
EndFunc
func _stop()
_SoundStop($abspiel)
$abspiel=""
$playing=false
GUICtrlSetData($label2, "00:00:00")
EndFunc
func media($sSD, Const $sPat = '', Const $iF = 3)
Local $sRet = "", $sSubD = '|' & $sSD
Local $FFFF, $FFNF, $sDir, $iC
Local $aD, $hDLL = DllOpen('kernel32.dll')
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
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
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
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
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
func playbutton()
if $test = @ScriptDir & "\play.gif" Then
$test = @ScriptDir & "\pause.gif"
GUICtrlDelete($pic)
$pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
Endif
Endfunc
func pausebutton()
if $test = @ScriptDir & "\pause.gif" then
$test = @ScriptDir & "\play.gif"
GUICtrlDelete($pic)
$pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
endif
EndFunc
func search()
$read = guictrlread($Search)
$text = _GUICtrlListView_FindInText($ListView2, $read)
$text1 = _GUICtrlListView_EnsureVisible($ListView2, $text)
_GUICtrlListView_SetItemDropHilited($ListView2, $text1)
EndFunc
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
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:
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.0
Author: myName
Script Function:
Template AutoIt script.
#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>
Global $abspiel,$titel
$test = @ScriptDir & "\play.gif"
$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)
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
While 2
Local $lenght, $SoundPos
If $lenght = $SoundPos Then
_next()
endif
Wend
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
EndFunc
[/autoit] [autoit][/autoit] [autoit]func _Pause()
_SoundPause($abspiel)
EndFunc
func _stop()
_SoundStop($abspiel)
$abspiel=""
$playing=false
GUICtrlSetData($label2, "00:00:00")
EndFunc
func media($sSD, Const $sPat = '', Const $iF = 3)
Local $sRet = "", $sSubD = '|' & $sSD
Local $FFFF, $FFNF, $sDir, $iC
Local $aD, $hDLL = DllOpen('kernel32.dll')
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
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
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
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
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
func playbutton()
if $test = @ScriptDir & "\play.gif" Then
$test = @ScriptDir & "\pause.gif"
GUICtrlDelete($pic)
$pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
Endif
Endfunc
func pausebutton()
if $test = @ScriptDir & "\pause.gif" then
$test = @ScriptDir & "\play.gif"
GUICtrlDelete($pic)
$pic=GUICtrlCreatePic($test, 460, 150, 37, 37)
endif
EndFunc
func search()
$read = guictrlread($Search)
$text = _GUICtrlListView_FindInText($ListView2, $read)
$text1 = _GUICtrlListView_EnsureVisible($ListView2, $text)
_GUICtrlListView_SetItemDropHilited($ListView2, $text1)
EndFunc
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
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
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.
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 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.
Geht klar. Hier ist mein komplettes Script:
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.0
Author: myName
Script Function:
Template AutoIt script.
#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>
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)
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
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
func _stop()
_SoundStop($abspiel)
EndFunc
func media($sSD, Const $sPat = '', Const $iF = 3)
Local $sRet = "", $sSubD = '|' & $sSD
Local $FFFF, $FFNF, $sDir, $iC
Local $aD, $hDLL = DllOpen('kernel32.dll')
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
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
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
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
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?
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:
func sound()
$SongPlay=_GUICtrlListView_GetItemTextString($Listview1)
$SongRoot=StringSplit($SongPlay, "|")
$abspiel=_SoundOpen($SongRoot[2])
$playsound=_SoundPlay($abspiel, 0)
EndFunc
func _Pause()
_SoundPause($abspiel)
EndFunc
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?
Danke AspirinJunkie, genau das habe ich gesucht
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.
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.
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.
#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.0
Author: myName
Script Function:
Template AutoIt script.
#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>
#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 ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
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?
Denke das hier könnte sehr hilfreich sein, wenn ich deine Frage richtig verstanden habe.
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^^
Hast du die Array.au3 included?