Nun du kannst von deiner Jetzigen Laufenden Windows ein Backup image erstellen und diese nachher in der wirtualbox aufspielen,
Oder du kannst die Selbige windows 7 install CD mit dem Selbigen Windows Key in der virualbox Installieren.
Hab erstere Variante schon einmal gemacht um was von meiner zurzeit Laufenden Win zu testen.
Beiträge von Skilkor
-
-
nun, du könntest mit @error arbeiten aber ebend ohne script wird das ein Spiel bei dem nur Fragen entstehen, aber keine Antworten
Skilkor
-
Nun wen es ne .exe ist und in der Datei info nichts von autoit steht kann der "gegner" ja nicht wissen das es ein autoit script ist, o. deh ich da was falsch?
-
bringt doch nichts wen ihr dan die Dateien nicht habt. deswegen hab ich extra geschrieben
Am besten könnt ihr dies sehen wen ihr den Code mal ausführt eine *.wpl (Windows Media Player) playlist erstellt und eine *.pls (SongBird) Playlist, dan Importiert Ihr die *.wpl und seht euch das _ArrayDisplay($aTmp, '$aTmp VOR einbindung') an. und dan das Selbige mit der *.pls .

Ich arbeite mit den Playlists die ich zuvor mit dem Script erstellt habe -
HiHo, vll is der titel Nicht ganz erklärend, macht nichts, ich hoffe ich kann im Thread alles erklären

Also, es geht um mein Prog WL, auf mehrere anfragen hab ich angefangen diese zu erweitern und stehe nun vor einem Mysteriösen Rätzel.
Hier einmal der Gesammte Code, ist nicht Kurz für ein ein Kleines ding
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=icons\prog01.ico
#AutoIt3Wrapper_outfile=WL.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Fileversion=1.5.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Skilkor(http://www.autoit.de)(Hilfe: Oscar & i2c & Raupi & ohforf & Twodollarbillie)
#AutoIt3Wrapper_Res_Language=1031
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
;==============
#Region ### include ###
#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <StructureConstants.au3>
#include <GuiImageList.au3>
#include <Misc.au3>
#include <EditConstants.au3>
#EndRegion ### include ###
;=============
#Region ### Global Ini ###
;~ Global $sInifile = @ScriptDir & '\Conf.ini' ; Inidatei
#EndRegion ### Global Ini ###
;=============
#Region ### IniRead ###
#EndRegion ### IniRead ###
;=============
#Region ### Global Checkbox ###
Global $ahCheckbox[5]
Global $BoxNames[5] = ['Windows Media Player', 'Songbird', 'WinAmp', 'VLC', 'RealPlayer']
Global $aFunktions[5] = ['_WMP', '_SongBird', '_WAmp', '_VLC', '_RPlayer']
Global $aLeft[6] = [24,155,220,280,325,400]
#Endregion ### Global Checkbox ###
;=============
#Region ### Wiedergabelieste ###
$WL = GUICreate("WL Creater",442,460,-1,-1)
GUICtrlCreateGroup("",8,0,425,97)
GUICtrlCreateGroup("",8,89,425,344)
For $i = 0 To 4
$ahCheckbox[$i] = GUICtrlCreateCheckbox($BoxNames[$i], $aLeft[$i], 40, $aLeft[$i + 1] - $aLeft[$i], 20)
Next
$Tip = GUICtrlCreateLabel("Tip: Wählt eine Widergabelisten Art aus. Seht euch die Hilfe an",24,64,203,25)
$Create = GUICtrlCreateButton("Erstellen",232,64,59,25,$WS_GROUP)
$ClearListViewB = GUICtrlCreateButton("Liste Leeren",296, 64, 67, 25, $WS_GROUP)
$FolderSearch = GUICtrlCreateButton("...",400,16,19,25,$WS_GROUP)
;~ $Hilfe = GUICtrlCreateButton("Hilfe",368,64,59,25,$WS_GROUP)
$Path = GUICtrlCreateInput("Path",24,16,377,21,$ES_READONLY)
GUISetState(@SW_SHOW)
;~ MsgBox(0,'Checkbox',$Tip)
#EndRegion ### Wiedergabelieste ###
#Region ### Global ###
Global $aID3, $aFiles, $sPath, $sNewItem, $Duration, $iMode, $sString, $Create, $FolderSearch,$FilePath
Global $ahPlItem[1], $iPlCount = 0, $sID3Tags
#EndRegion ### Global ###
;=============
#Region ### Global ListView ###
Global $LV_Style = BitOR($WS_EX_DLGMODALFRAME, $WS_EX_CLIENTEDGE)
Global $LV_EX_STYLE = BitOR($LVS_EX_SUBITEMIMAGES, $LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT)
Global $ListView = GUICtrlCreateListView('Nr.|Artist|Title|Album|Länge|Path',16,104,409,321, $LV_Style, $LV_EX_STYLE)
_GUICtrlListView_SetExtendedListViewStyle($ListView, $LV_EX_STYLE)
_GUICtrlListView_RegisterSortCallBack($ListView)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 0, 32)
GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 1, 100)
GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 2, 100)
GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 3, 110)
GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 4, 50)
GUICtrlSendMsg($ListView, $LVM_SETCOLUMNWIDTH, 5, 120)
#EndRegion ### Global ListView ###
;=============
#Region ### Global ContextMenü ###
Global $ContextMenue = GUICtrlCreateContextMenu($ListView)
Global $DelItem = GUICtrlCreateMenuItem('Löschen', $ContextMenue)
Global $AddItem = GUICtrlCreateMenuItem('File hinzufügen', $ContextMenue)
Global $Import1 = GUICtrlCreateMenuItem('Playlist Importieren',$ContextMenue)
Global $ClearListViewM1 = GUICtrlCreateMenuItem('Liste Leeren',$ContextMenue)
#EndRegion ### Global ContextMenü ###
;=============
#Region ### Global Menü ###
Global $Menu = GUICtrlCreateMenu('Menü',-1,0)
Global $Import = GUICtrlCreateMenuItem('Playlist Importieren',$Menu,0)
Global $ClearListViewM = GUICtrlCreateMenuItem('Liste Leeren',$Menu,0)
Global $Maske = GUICtrlCreateMenu('Maske',$menu,10)
Global $Normal = GUICtrlCreateMenuItem('Standard',$Maske,1)
Global $Black = GUICtrlCreateMenuItem('Schwarz',$Maske,2)
Global $Red = GUICtrlCreateMenuItem('Rot',$Maske,3)Global $HelpMenu = GUICtrlCreateMenu('?',-1,10)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $HelpItem = GUICtrlCreateMenuItem('Hilfe',$HelpMenu,0,1)
#EndRegion ### Global Menü ###
;=============
#Region ### GUI_Event ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ListView
_GUICtrlListView_SortItems($ListView, GUICtrlGetState($ListView))
Case $Create
_Create()
Case $ClearListViewB, $ClearListViewM, $ClearListViewM1
_ClearListView()
Case $FolderSearch
_FolderSearch()
Case $HelpItem
_Hilfe()
Case $DelItem
_DeleteSelected()
Case $AddItem
_addFile()
Case $Import,$Import1
_Import()Case $Normal
[/autoit] [autoit][/autoit] [autoit]
_optNormal()
Case $Black
_optBlack()
Case $Red
_optRed()
EndSwitch
$dll = DllOpen("user32.dll")
If _IsPressed("2E") Then
_DeleteSelected()
EndIf
DllClose($dll)
WEnd
#EndRegion ### GUI_Event ###
;=============
#Region ### _FolderSearch() ###
Func _FolderSearch()
$sPath = FileSelectFolder('Wähle einen MP3 Verzeichniss aus','', 4, '', '')
ControlSetText('','',$Path,$sPath)
$aFiles = _FileListToArray($sPath, '*.mp3', 1)
_GUICtrlListView_AddArray($aFiles, $ListView)
If Not @error Then
$Duration= 0
For $i = 1 To UBound($aFiles) - 1
_AddFileToListView($sPath & "\" & $aFiles[$i])
Next
EndIf
EndFunc
#EndRegion ### _FolderSearch() ###
;=============
#Region ### _addFile() ###
Func _addFile()
Local $aFiles
$sPath = FileOpenDialog('Wähle die *.mp3 Datei aus','','(*.mp3)',4,'','')
$aPaths = StringSplit($sPath,'|',1)
If IsArray($aPaths) Then
_GUICtrlListView_BeginUpdate($ListView)
For $i = 1 To $aPaths[0]
$Duration= 0
_AddFileToListView($aPaths[$i])
;_GUICtrlListView_AddItem($ListView, $aPaths[$i])
Next
_GUICtrlListView_EndUpdate($ListView)
Else
_FehlerListViewItem()
EndIf
EndFunc
#Endregion ### _addFile() ###
;=============
#Region ### _AddFileToListView() ###
Func _AddFileToListView($sPath) ;$aID3Tag[1][1] für Titel | $aID3Tag[2][1] für Artist | $aID3Tag[3][1] für Album | $aID3Tag[4][1] für die Länge | $aID3Tag[5][1] für die Titel Nr | $iPlCount + 1 Listet die zahl der ListView Items auf
If Not FileExists($sPath) Then Return
Local $aID3, $sNewItem
$aID3 = _ReadID3Tag($sPath)
If Not @error Then
ReDim $ahPlItem[$iPlCount + 1]
$Duration += $aID3[4][1]
$sNewItem = $aID3[5][1] & '|' & $aID3[1][1] & '|' & $aID3[0][1] & '|' & $aID3[2][1] & '|' & $aID3[4][1] & '|' & $sPath; & '|' & $iPlCount + 1
$ahPlItem[$iPlCount] = GUICtrlCreateListViewItem($sNewItem, $ListView)
$iPlCount += 1
EndIf
EndFunc
#EndRegion ### _AddFileToListView() ###
;=============
#Region ### _Hilfe() ###
Func _Hilfe()
MsgBox(4096, 'Hilfe', 'Wiedergabelisten Beschreibung'&@CRLF&@CRLF&'Einfach auf den Button neben dem Langen'&@CRLF&'Editfeld Klicken und Verzeichniss auswählen'&@CRLF&'Dann auf Erstellen'&@CRLF&@CRLF&'WL erstellt einmehrere Playlists'&@CRLF&'z.B.'&@CRLF&'(*.wpl) - Windows Media Player'&@CRLF&'(*.pls) - Song Bird & Win Amp'&@CRLF&'(*.m3u) - Real Player'&@CRLF&'(*.xspf) - Video Lan (VLC)'&@CRLF&@CRLF&'Ein Danke an:'&@CRLF&'i2c: Für seine Hilfe und Ideen'&@CRLF&'Raupi: Auch für seine Hilfe'&@CRLF&@CRLF&'Createt by Skilkor')
EndFunc
#EndRegion ### _Hilfe() ###
;=============
#Region ### _Fehler() ###
Func _Fehler()
MsgBox(48, 'Fehler', 'Keine Wiedergabelieste ausgewählt')
EndFunc
#EndRegion ### _Fehler() ###
;=============
#Region ### _FehlerListViewItem() ###
Func _FehlerListViewItem()
$msg = MsgBox(48+4, 'Fehler', 'Keine "*.mp3" Dateien Gefunden'&@CRLF&'Neu Suchen?')
If $msg = 6 Then
_addFile()
EndIf
EndFunc
#EndRegion ### _FehlerListViewItem() ###
;=============
#Region ### _FehlerListView() ###
Func _FehlerListView()
$msg = MsgBox(48+4, 'Fehler', 'Keine "*.mp3" einträge Gefunden'&@CRLF&'Neu Suchen?')
If $msg = 6 Then
_FolderSearch()
EndIf
EndFunc
#EndRegion ### _FehlerListView() ###
;=============
#Region ### _Create() ###
Func _Create()
If _GUICtrlListView_GetItemCount($ListView) = 0 Then
_FehlerListView()
EndIf
For $i = 0 To 4
If BitAND(GUICtrlRead($ahCheckbox[$i]), $GUI_CHECKED) Then Call($aFunktions[$i])
;~ MsgBox(0,'Checkbox',$ahCheckbox[$i])
Next
EndFunc
#EndRegion ### _Create() ###
;=============
#Region ### _ListView() Leeren ###
Func _ClearListView()
_GUICtrlListView_DeleteAllItems($ListView)
EndFunc
#EndRegion ### _ListView() Leeren ###
;=============
#Region ### _DeleteSelected ###
Func _DeleteSelected()
_GUICtrlListView_DeleteItemsSelected($ListView)
EndFunc
#EndRegion ### _DeleteSelected ###
;=============
#Region ### _Import() ### von i2c (Teils Bsp)
Func _Import()
$FilePath = FileOpenDialog('Playlist Importieren', '', 'Alle Playlists (*.wpl;*.pls;*.xspf;*.m3u)|(*.wpl)|(*.pls)|(*.xspf)|(*.m3u)')
If StringRight($FilePath, 4) = ".wpl" Then
$hFile = FileOpen($FilePath)
$sRead = FileRead($hFile)
FileClose($hFile)
If Not @error Then
$aTmp = StringRegExp($sRead, '<media\ssrc=\"(.*?)\"', 3, 1)
If IsArray($aTmp) Then
$aFolder = StringRegExp($FilePath, "(.*)\\", 1, 1)
If IsArray($aFolder) Then
$aParent = StringRegExp($aFolder[0], "(.*)\\", 1, 1)
Else
MsgBox(0, "Fehler", "Datei konnte nicht importiert werden")
Return
EndIf
For $i = UBound($aTmp) - 1 To 0 Step -1
If StringLeft($aTmp[$i], 2) = '..' Then
$sTmp = $aParent[0] & StringTrimLeft($aTmp[$i], 2)
If Not FileExists($sTmp) Then
MsgBox(0, "Fehler", "Datei: " & $sTmp & @CRLF & "Datei existiert nicht")
_ArrayDelete($aTmp, $i)
Else
$aTmp[$i] = $sTmp
EndIf
EndIf
Next
EndIf
Else
MsgBox(0, "Fehler", "Datei konnte nicht importiert werden")
Return
EndIf
EndIfIf StringRight($FilePath, 4) = ".pls" Then ;Wen es eine *.pls Datei ist DANN
[/autoit] [autoit][/autoit] [autoit]
If MsgBox(4+48,'*.pls Fortfahren','Nur *.pls Playlist die mit >WL< erstellt wurden, "Solten" importiert werden'&@CRLF&'Fortfahren?') = 7 Then ;Wenn NEIN dann Return
Return
EndIf
$hFile = FileOpen($FilePath) ;Öffne *.pls Playlist
$sRead = FileRead($hFile) ;Lesse *.pls Playlist
FileClose($hFile) ;Schliesse *.pls Playlist
If Not @error Then ;Wen nicht ERROR DANN
$aTmp = StringRegExp($sRead, 'File\d+\=(.*)', 3, 1) ;Dateipfade einlesen
EndIf
If StringLeft($aTmp[$i], 2) = '..' Then
For $i = UBound($aTmp) - 1 To 0 Step -1 ;~ Array rückwärts durchlaufen
If StringLeft($aTmp[$i], 2) = '..' Then ;~ wenn die ersten beiden Zeichen '..' sind, ist es ein relativer Pfad
$aCount = StringRegExp($aTmp[$i], '(\.\.\/)', 3, 1) ;~ zähle alle '../' im String um das Level des relativen Pfades herauszufinden
$aFolder = StringSplit($FilePath, "\") ;~ den Ordnerpfad (Playlist) an den \'s aufsplitten.
;~ Das Array mit den einzelnen Ordnern wieder in einen String umwandeln.
;~ Der 4te Parameter: (Anzahl Elemente von $aFolder)-Anzahl der relativen Pfadebenen in $aCount
;~ Ergebnis: Der Ordner, von dem aus der absolute Teil des relativen Dateipfads weiter zur MP3 führt.
$sTmp = _ArrayToString($aFolder, "\", 1, (UBound($aFolder) - 1) - UBound($aCount))
$aTmp[$i] = StringReplace($aTmp[$i], "../", "") ;~ Alle '../' aus dem relativen Pfad entfernen
$aTmp[$i] = StringReplace($aTmp[$i], "/", "\") ;~ '/' durch '\' ersetzen, damit ein anständiger Pfad draus wird
$sTmp = $sTmp & "\" & $aTmp[$i] ;~ Den absoluten Pfad aus dem gekürzten Pfad der Playlist und dem 'gesäuberten' Pfad der MP3 zusammenbauen
If Not FileExists($sTmp) Then ;~ Prüfen ob die Datei dort existiert
MsgBox(0, "Fehler", "Datei: " & $sTmp & @CRLF & "Datei existiert nicht")
_ArrayDelete($aTmp, $i) ;~ Wenn nicht, dann das Element aus dem Array löschen
Else
$aTmp[$i] = $sTmp ;~ wenn sie existiert, den Pfad in das Arrayelement schreiben
EndIf
EndIf
Next
EndIfEndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]_ArrayDisplay($aTmp,'$aTmp vor Import')
[/autoit]
If IsArray($aTmp) Then
_GUICtrlListView_BeginUpdate($ListView)
For $i = 0 To UBound($aTmp) - 1
$Duration = 0
_AddFileToListView($aTmp[$i])
Next
_GUICtrlListView_EndUpdate($ListView)
Else
MsgBox(0, "Fehler", "Keine Daten zum importieren.")
Return
EndIf
EndFunc
#EndRegion ### _Import() ### von i2c (Teils Bsp)
;=============
#Region ### _WMP() ### *.wpl
Func _WMP()
Local $sSaveFilename,$hFile, $iCount = _GUICtrlListView_GetItemCount($ListView)
If $iCount = 0 Then Return
$sSaveFilename = FileSaveDialog('Wähle einen Namen für die MP3-Playlist',@DesktopDir, 'Windows Media Player-Playlist (*.wpl)', 18, '')
$Folder = $sSaveFilename
$aFolder = StringSplit($Folder,"\")
If IsArray($aFolder) Then $Folder = $aFolder[$aFolder[0]-1] & "\" & $aFolder[$aFolder[0]]
If Not @error Then
If StringRight($sSaveFilename, 4) <> '.wpl' Then $sSaveFilename &= '.wpl'
$hFile = FileOpen($sSaveFilename, 128 + 2)
If $hFile <> -1 Then
FileWrite($hFile, '<?wpl version="1.0"?>'&@CRLF)
FileWrite($hFile, '<smil>'&@CRLF)
FileWrite($hFile, ' <head>'&@CRLF)
FileWrite($hFile, ' <meta name="Generator" content="Microsoft Windows Media Player -- "/>'&@CRLF)
FileWrite($hFile, ' <meta name="ItemCount" content="'&$iPlCount&'"/>'&@CRLF)
FileWrite($hFile, ' <meta name="TotalDuration" content="'&$Duration&'"/>'&@CRLF)
FileWrite($hFile, ' <author/>'&@CRLF)
FileWrite($hFile, ' <title>'&$Folder&'</title>'&@CRLF)
FileWrite($hFile, ' </head>'&@CRLF)
FileWrite($hFile, ' <body>'&@CRLF)
FileWrite($hFile, ' <seq>'&@CRLF)
For $i = 0 To $iCount
FileWriteLine($hFile, ' <media src="'& _GUICtrlListView_GetItemText($ListView,$i,5)&'"/>')
Next
FileWrite($hFile, ' </seq>'&@CRLF)
FileWrite($hFile, ' </body>'&@CRLF)
FileWrite($hFile, '</smil>'&@CRLF)
FileClose($hFile)
EndIf
EndIf
EndFunc
#EndRegion ### _WMP() ###
;=============
#Region ### _SongBird() ### *.pls
Func _SongBird()
Local $sSaveFilename,$hFile, $iCount = _GUICtrlListView_GetItemCount($ListView)
If $iCount = 0 Then Return
$sSaveFilename = FileSaveDialog('Wähle einen Namen für die MP3-Playlist',@DesktopDir, 'SongBird-Playlist (*.pls)', 18, '')
If Not @error Then
If StringRight($sSaveFilename, 4) <> '.pls' Then $sSaveFilename &= '.pls'
$hFile = FileOpen($sSaveFilename, 2)
If $hFile <> -1 Then
FileWrite($hFile, '[playlist]'&@CRLF)
FileWrite($hFile, 'NumberOfEntries=1'&@CRLF&@CRLF)
For $i = 0 To $iCount
FileWriteLine($hFile,'File'&$i+1&'='& _GUICtrlListView_GetItemText($ListView,$i,5))
FileWriteLine($hFile,'Title'&$i+1&'='& _GUICtrlListView_GetItemText($ListView,$i,1)&' - '&_GUICtrlListView_GetItemText($ListView,$i,2))
FileWriteLine($hFile,'Length'&$i+1&'='& _GUICtrlListView_GetItemText($ListView,$i,4)&@CRLF&@CRLF)
Next
FileWrite($hFile, @CRLF&'Version=2'&@CRLF)
FileClose($hFile)
EndIf
EndIf
EndFunc
#Endregion ### _SongBird() ###
;=============
#Region ### _WAMP() ### *.m3u
Func _WAMP()
Local $sSaveFilename,$hFile, $iCount = _GUICtrlListView_GetItemCount($ListView)
If $iCount = 0 Then Return
$sSaveFilename = FileSaveDialog('Wähle einen Namen für die MP3-Playlist',@DesktopDir, 'MP3-Playlist (*.m3u)', 18, '')
If Not @error Then
If StringRight($sSaveFilename, 4) <> '.m3u' Then $sSaveFilename &= '.m3u'
$hFile = FileOpen($sSaveFilename, 2)
If $hFile <> -1 Then
FileWrite($hFile, '#EXTM3U' & @CRLF)
For $i = 0 To $iCount - 1
FileWriteLine($hFile, '#EXTINF:' & _GUICtrlListView_GetItemText($ListView,$i,4) & ',' & _GUICtrlListView_GetItemText($ListView,$i,1) & ' - ' & _GUICtrlListView_GetItemText($ListView,$i,2)& ' - ' & 'Track Nr' & _GUICtrlListView_GetItemText($ListView,$i,0) & ' end')
FileWriteLine($hFile, _GUICtrlListView_GetItemText($ListView,$i,5))
Next
FileClose($hFile)
EndIf
EndIf
EndFunc
#EndRegion ### _WAMP() ###
;=============
#Region ### _VLC() ### *.xspf
Func _VLC()
Local $sSaveFilename,$hFile, $iCount = _GUICtrlListView_GetItemCount($ListView)
If $iCount = 0 Then Return
$sSaveFilename = FileSaveDialog('Wähle einen Namen für die MP3-Playlist',@DesktopDir, 'VLC-Playlist (*.xspf)', 18, '')
$Folder = $sSaveFilename
$aFolder = StringSplit($Folder,"\")
If IsArray($aFolder) Then $Folder = $aFolder[$aFolder[0]-1] & "\" & $aFolder[$aFolder[0]]
If Not @error Then
If StringRight($sSaveFilename, 4) <> '.xspf' Then $sSaveFilename &= '.xspf'
$hFile = FileOpen($sSaveFilename, 128 + 2)
If $hFile <> -1 Then
FileWrite($hFile, '<?xml version="1.0" encoding="UTF-8"?>'&@CRLF)
FileWrite($hFile, '<playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/">'&@CRLF)
FileWrite($hFile, ' <title>'&$Folder&'</title>'&@CRLF)
FileWrite($hFile, ' <trackList>'&@CRLF)
For $i = 0 To $iCount - 1
FileWriteLine($hFile,' <track>')
FileWriteLine($hFile,' <location>file:///'& _GUICtrlListView_GetItemText($ListView,$i,5)&'</location>')
FileWriteLine($hFile,' <title>'& _GUICtrlListView_GetItemText($ListView,$i,2)&'</title>')
FileWriteLine($hFile,' <creator>'& _GUICtrlListView_GetItemText($ListView,$i,1)&'</creator>')
FileWriteLine($hFile,' <album>'& _GUICtrlListView_GetItemText($ListView,$i,3)&'</album>')
FileWriteLine($hFile,' <trackNum>'& _GUICtrlListView_GetItemText($ListView,$i,0)&'</trackNum>')
FileWriteLine($hFile,' <image>file:///'&''&'</image>')
FileWriteLine($hFile,' <extension application="http://www.videolan.org/vlc/playlist/0">')
FileWriteLine($hFile,' <vlc:id>'& _GUICtrlListView_GetItemText($ListView,$i,0)&'</vlc:id>')
FileWriteLine($hFile,' </extension>')
FileWriteLine($hFile,' </track>')
Next
FileWrite($hFile, ' </trackList>'&@CRLF)
FileWrite($hFile, ' <extension application="http://www.videolan.org/vlc/playlist/0">'&@CRLF)
If $hFile <> -1 Then
For $i = 0 To $iCount - 2
FileWriteLine($hFile, ' <vlc:item tid="'&_GUICtrlListView_GetItemText($ListView,$i,0)&'" />')
Next
FileWrite($hFile, ' </extension>'&@CRLF)
FileWrite($hFile, '</playlist>')
FileClose($hFile)
EndIf
EndIf
EndIf
EndFunc
#EndRegion ### _VLC() ###
;=============
#Region ### _RPlayer() ### *.m3u
Func _RPlayer()
Local $sSaveFilename,$hFile, $iCount = _GUICtrlListView_GetItemCount($ListView)
If $iCount = 0 Then Return
$sSaveFilename = FileSaveDialog('Wähle einen Namen für die MP3-Playlist',@DesktopDir, 'MP3-Playlist (*.m3u)', 18, '')
If Not @error Then
If StringRight($sSaveFilename, 4) <> '.m3u' Then $sSaveFilename &= '.m3u'
$hFile = FileOpen($sSaveFilename, 2)
If $hFile <> -1 Then
FileWrite($hFile, '#EXTM3U' & @CRLF)
For $i = 0 To $iCount - 1
FileWriteLine($hFile, '#EXTINF:' & _GUICtrlListView_GetItemText($ListView,$i,4) & ',' & _GUICtrlListView_GetItemText($ListView,$i,1) & ' - ' & _GUICtrlListView_GetItemText($ListView,$i,2)& ' - ' & 'Track Nr' & _GUICtrlListView_GetItemText($ListView,$i,0) & ' end')
FileWriteLine($hFile, _GUICtrlListView_GetItemText($ListView,$i,5))
Next
FileClose($hFile)
EndIf
EndIf
EndFunc
#EndRegion ### _RPlayer() ###
;=============
#Region ### _ID3Tag() ### Von Oscar
Func _ReadID3Tag($sPath)
If Not FileExists($sPath) Then Return SetError(1, 0, 0)
Local $hFile, $sData, $sID3Header, $iID3HeaderSize = 0, $iOffset, $iSize, $tmp
Local $aID3v2Tags[8] = ['TIT2', 'TPE1', 'TALB', 'TYER', 'TLEN', 'TRCK', 'TCON', 'TENC']
Local $aID3[11][2] = [ _
['Title', ''],['Artist', ''],['Album', ''],['Year', ''], _
['Length', '0'],['Track', ''],['Genre', ''],['Encoder', ''], _
['MPEG-Version', ''],['Bitrate', ''],['Sample-Freq.', '']]
Local $aMP3Version[4] = ['MPEG2.5', 'Reserved', 'MPEG2', 'MPEG1']
Local $aMP3Layer[4] = ['Reserved', 'Layer III', 'Layer II', 'Layer I']
Local $aMP3Bitrate[5][16] = [ _
[000, 032, 064, 096, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 000], _
[000, 032, 048, 056, 064, 080, 096, 112, 128, 160, 192, 224, 256, 320, 384, 000], _
[000, 032, 040, 048, 056, 064, 080, 096, 112, 128, 160, 192, 224, 256, 320, 000], _
[000, 032, 048, 056, 064, 080, 096, 112, 128, 144, 160, 176, 192, 224, 256, 000], _
[000, 008, 016, 024, 032, 040, 048, 056, 064, 080, 096, 112, 128, 144, 160, 000]]
Local $aSampleFreq[3][4] = [[44100, 48000, 32000, 0],[22050, 24000, 16000, 0],[11025, 12000, 8000, 0]]
Local $sMP3FrameHeader, $iMP3Version, $sMP3Version, $sMP3Layer, $iMP3Bitrate, $iMP3SampleFreq
Local $iVBRFrames = -1, $iVBRFilesize, $iVBRFlags
$hFile = FileOpen($sPath, 16)
If $hFile = -1 Then Return SetError(2, 0, 0)
$sData = Binary(FileRead($hFile, 4))
If BinaryMid($sData, 1, 3) = '0x494433' Then ; ID3 v2.x Kennung gefunden
If (BinaryMid($sData, 4, 1) = '0x03') Or (BinaryMid($sData, 4, 1) = '0x04') Then ; nur v2.3 und 2.4
FileRead($hFile, 2) ; 2 Bytes überspringen
For $i = 0 To 3 ; berechne ID3-Headergröße (4 Bytes, jedoch nur jeweils die unteren 7 Bit)
$iID3HeaderSize = BitShift($iID3HeaderSize, -7) + BitAND(Binary(FileRead($hFile, 1)), 0x7F)
Next
If $iID3HeaderSize > 0 Then
$sID3Header = Binary(FileRead($hFile, $iID3HeaderSize)) ; lese gesamten ID3-Header
For $i = 0 To 7
$iOffset = StringInStr(BinaryToString($sID3Header), $aID3v2Tags[$i]) ; Offset zu dem ID3-Tag
If $iOffset > 0 Then
$iSize = Hex(BinaryMid($sID3Header, $iOffset + 4, 4)) ; Größe des ID3-Frames
$tmp = BinaryMid($sID3Header, $iOffset + 11, Dec($iSize) - 1)
If BinaryMid($tmp, 1, 2) = '0xFFFE' Then
For $x = 3 To BinaryLen($tmp) Step 2
$aID3[$i][1] &= BinaryToString(BinaryMid($tmp, $x, 2), 2)
Next
Else
For $x = 1 To BinaryLen($tmp)
$aID3[$i][1] &= BinaryToString(BinaryMid($tmp, $x, 1))
Next
EndIf
$aID3[$i][1] = StringReplace($aID3[$i][1], Chr(0), '')
EndIf
Next
EndIf
Do
$sData = String(FileRead($hFile, 1))
If @error Then ExitLoop
If BitAND($sData, 0xff) = 0xff Then
FileSetPos($hFile, -1, 1)
$sData = String(FileRead($hFile, 4))
EndIf
Until BitAND($sData, 0xFFE00000) = 0xFFE00000
Else
FileClose($hFile)
Return SetError(3, 0, 0)
EndIf
Else ; ID3 v1.x
$iOffset = FileGetPos($hFile)
FileSetPos($hFile, -128, 2)
$sID3Header = BinaryToString(FileRead($hFile, 3))
If $sID3Header = 'TAG' Then
$aID3[0][1] = StringReplace(BinaryToString(FileRead($hFile, 30)), Chr(0), '')
$aID3[1][1] = StringReplace(BinaryToString(FileRead($hFile, 30)), Chr(0), '')
$aID3[2][1] = StringReplace(BinaryToString(FileRead($hFile, 30)), Chr(0), '')
$aID3[3][1] = StringReplace(BinaryToString(FileRead($hFile, 4)), Chr(0), '')
EndIf
FileSetPos($hFile, $iOffset, 0)
EndIf
$sMP3FrameHeader = String($sData)
If BitAND($sMP3FrameHeader, 0xFFE00000) <> 0xFFE00000 Then
FileClose($hFile)
Return SetError(4, 0, 0) ; keine MP3-Datei, dann Return
EndIf
$iMP3Version = BitShift(BitXOR($sMP3FrameHeader, 0xFFE00000), 19) ; welche MP3-Version
$sMP3Version = $aMP3Version[$iMP3Version] ; in Textform
$sMP3Layer = $aMP3Layer[BitShift(BitAND($sMP3FrameHeader, 0x60000), 17)] ; welcher Layer
$aID3[8][1] = $sMP3Version & ' / ' & $sMP3Layer ; ins Ausgabe-Array
$iMP3Bitrate = BitShift(BitAND($sMP3FrameHeader, 0xF000), 12) ; Bitraten-Index auslesen
Switch $sMP3Version ; je nach MPEG-Version Bitrate aus der Tabelle holen
Case 'MPEG1'
$aID3[9][1] = $aMP3Bitrate[$iMP3Version - ($iMP3Version > 1)][$iMP3Bitrate]
Case 'MPEG2', 'MPEG2.5'
If $sMP3Layer = 'Layer I' Then
$aID3[9][1] = $aMP3Bitrate[3][$iMP3Bitrate]
Else
$aID3[9][1] = $aMP3Bitrate[4][$iMP3Bitrate]
EndIf
EndSwitch
$iMP3SampleFreq = BitShift(BitAND($sMP3FrameHeader, 0xC00), 10) ; Sample-Frequenz-Index auslesen
$aID3[10][1] = $aSampleFreq[2 - ($iMP3Version - ($iMP3Version > 1))][$iMP3SampleFreq] ; und Wert aus der Tabelle holen
Do ; evtl. Leerbytes überspringen
$tmp = FileRead($hFile, 1)
If @error Then ExitLoop
Until $tmp <> 0x00 Or @error
If $tmp = 0x58 And BinaryToString(FileRead($hFile, 3)) = 'ing' Then ; MP3 mit VBR (Xing-Header gefunden)?
$iVBRFlags = '0x' & Hex(FileRead($hFile, 4)) ; VBR-Flags auslesen
If BitAND($iVBRFlags, 0x3) Then ; wenn die Einträge vorhanden sind, dann...
$iVBRFrames = Dec(Hex(FileRead($hFile, 4))) ; Anzahl der VBR-Frames auslesen
$iVBRFilesize = Dec(Hex(FileRead($hFile, 4))) ; Dateigröße auslesen
$aID3[4][1] = $iVBRFrames * 1152 / $aID3[10][1] * 1000 ; VBR Laufzeit
$aID3[9][1] = 'VBR ~' & Int($iVBRFilesize * 8 / ($aID3[4][1] / 1000) / 1000) ; VBR durchschnittliche Bitrate
EndIf
Else
If $aID3[4][1] = 0 Then $aID3[4][1] = (FileGetSize($sPath) *
/ ($aID3[9][1] * 1000) * 1000 ; alternative CBR Laufzeit
$aID3[9][1] = 'CBR ' & $aID3[9][1]
EndIf
$aID3[4][1] = Int($aID3[4][1] / 1000) ; Laufzeit
$aID3[9][1] &= ' kBit/s'
$aID3[10][1] &= ' Hz'
FileClose($hFile)
Return $aID3
EndFunc ;==>_ReadID3Tag
#EndRegion ### _ID3Tag() ### Von Oscar
;=============
#Region ### _optNormal() ###
Func _optNormal()
GUISetBkColor(0xF0F0F0,$WL)
GUICtrlSetColor(10, 0x000000)
EndFunc
#EndRegion ### _optNormal() ###
;=============
#Region ### _optBlack() ###
Func _optBlack()
GUISetBkColor(0x000000,$WL)
GUICtrlSetColor(10, 0xFFFFFF)
EndFunc
#EndRegion ### _optBlack() ### GUISetBkColor(0xFF0000)
;=============
#Region ### _optRed() ###
Func _optRed()
GUISetBkColor(0xFF0000,$WL)
GUICtrlSetColor(10, 0x000000)
EndFunc
#EndRegion ### _optRed() ###
;=============
So ab Zeile 275 bis 307 ist die Betreffenden Stelle
Er gibt mir im _ArrayDisplay($aTmp, '$aTmp VOR einbindung') alles korekt an, die Angaben sind Identisch wie bei der *.wpl beim Importieren (Die *.wpl Importation Funktioniert)
Am besten könnt ihr dies sehen wen ihr den Code mal ausführt eine *.wpl (Windows Media Player) playlist erstellt und eine *.pls (SongBird) Playlist, dan Importiert Ihr die *.wpl und seht euch das _ArrayDisplay($aTmp, '$aTmp VOR einbindung') an. und dan das Selbige mit der *.pls .
Ich Versuche schon seit bald 2 tagen dieses Rätzel zu lösen und komme einfach nicht dahinter.Ich weiss, es lässt sich sicherlich noch so Einiges Verkürtzen
das aber Später 
***Edit***
Anscheinend kahm mein Mysterium nicht ganz an
Es geht darum das die Import Funktion der *.pls nicht funktioniert trotz der Identischen _ArrayDisplay() angaben im vergleich zu der *.wpl Import...Skilkor
-
@kunig:
Andy: Du solltest erstmal den Thread ordentlich lesen bevor du mich hier dumm anmachst.
1: So Spricht man mit PowerUsern nicht!Ich will halt nicht an jeder Ecke meines Codes ein Return einbauen, weils einfach ne Menge Arbeit ist. Deshalb die Frage ob es irgendwie einfacher geht.
2: Dies zu beantworten ist wie schon mehreremale Gesagt worden, schwierig ohne ScriptEdit:
SuperUser zu powerUser (Wasn Fail)
-
Mehr als Geil

-
@ Andy: Ich gebe dir in vielerlei hinsichten recht. Doch ich denke es ist oder wahr, nicht der sinn des Threads hier über Fehler von Usern zu debatieren

Deswegen schlage ich vor das man nun einfach mal den Thread schreiber abwarten bis der code vorhanden ist.
Tips und trinks und Hinweise wurde ja zugenüge dargestellt wie er
1: Die "800" Zeilen Code Posten kann
2: Functionen Abbrechen kann
3: sein script evt Debuggen kannSkilkor
-
Zitat
Darter: Return ist mir durchaus bekannt, ich hatte aber gehofft man kann das einfacher lösen. So muss ich an allen möglichen Stellen eine Abfrage einbauen... aber hilft wohl nichts

Kommt ganz darauf an wie der aufbau istZitat@Mattthias: Es ist kein Spielebot. Das Skript steuert in meiner Firma eine Kundensoftware an einem Messaufbau. Ich bediene diese Kundensoftware mit AutoIt damit niemand stundenlang davorsitzen und rumklicken muss.
Ich habe jetzt schon länger in diesem Forum mitgelesen und ich finds bisschen lächerlich dass in jedem zweiten Thread gleich ein Bot vermutet wird.
Es gibt auch Leute die einen PC zu sinnvolleren Dingen nutzen als zocken. 
Nun, ich denke dass muss man hinnehmen da es viele versuchen. Man Sollte halt einfach Ncith böse sein falls halt mal der Verdacht fällt, sondern in ruhe das Script posten und denen Beweissen die Bot versuche vermuten, das es ebend Kein Bot ist
*Man wasn Satz >_<*
Zu dem:ZitatDa mein Skript fast 800 Zeilen umfasst ist das wohl etwas zu viel.
da gibt es eine Einfache Lösung, den Spoiler
Spoiler Code
(spoiler)(/spoile) [ ] anstelle von ( )
Skilkor
-
Time: 48.771
Bei 1680x1050
Sieht nice aus
U das .jpg hat gut 3mb :>
-
Ich wahr mit GDI+ wohl nicht Falsch

Was mich persöhnlich stöhrt ist, das der *Balken* am Ende das Ganze fenster Bedeckt. Soweit ich weiss hat ein "Scanner" einen Balken mit vordefinierter Breite, oder seh ich das Falsch? -
Den *Grünen Scanner* mit GDI+ machen?
-
Passt Perfekt

Dank an Euch
hab noch ,#$2#) durch , $2 ) geändert und schon ises so wies sein muss
-
HiHo Ich mal wieder

Ich habn Problem (wie der Titel schon sagt) mit StringReplace().
Volgendes...
Es funktioniert bis zu einer Gewissen Stelle
Hier mal ScriptSpoiler anzeigen
[autoit]
[/autoit]
$FilePath = FileOpenDialog('Playlist Importieren','','(*.wpl)|(*.pls)|(*.m3u)|(*.xspf)')
If StringRight($FilePath, 4) = ".wpl" Then
FileOpen($FilePath)
$FRL = FileReadLine($FilePath,12)
$nPath = StringRegExpReplace($FRL,' <media src="','')
$nnPath = StringReplace($nPath,'/>','',-1)
FileClose($FilePath)
MsgBox(0,'File line',$nPath)
EndIf
Das ganze ist hast in ner *.wpl datei und die Zeile 12 ist IMMER die erste File angabe mit Pfad
etwa SoSpoiler anzeigen
<media src="E:\03_Eigene Music\969\The Beginning Of Chaos\The Beginning.mp3"/>
[autoit]
Das entfernen von # <media src="# Funktioniert mit StringRegExpReplace Tadelose...
Output sieht dan so aus #E:\03_Eigene Music\969\The Beginning Of Chaos\The Beginning.mp3"/>#
aber sobald ich bei
[/autoit]
$nPath = StringRegExpReplace($FRL,' <media src="','')
ein weiteres zeichen hinzufüge, Schmeisst er mir die ganzen angaben übrn haufen und tut Nichts mehr...
das StringReplace() hab ich extra noch hinzugefügt weil der bei ner Negativ Zahl von Rechts Nach Links Sucht...aber auch das will nicht -.-
Das Ganze sollte am Ende so aussehen
#E:\03_Eigene Music\969\The Beginning Of Chaos\The Beginning#Skilkor
-
hab ich doch getan
[autoit]
Da ich aber keinen gefunden habe der die Buttons So verwendet habich mich halt ebend gefragt wie man speziele zeichen aus einem 'Input/Edit' feld herausfiltern / Finden kann 
Deswegen auchStringRegExp()
[/autoit]
Aber naja, ganz so schlecht wahr ich dan ja auch nicht... er funktionierte zu 50%
-
[autoit]
Execute
[/autoit]
wahr mir bis dato unbekannt (Ohne Witz)
btw, thx -
Hiho
nach langem hin und her (auch in der Shouthbox >_<)
Hab ich mich entschloss nun doch n Thread zu machen....
Ich wollte als kleine Array übung n taschenrechner machen...
Das Prinzip funktioniert bisjetze....BISJETZE xD
Ihrwie hab ich atm n totalen Brain Freeze -.- und komm ned weiter...Hier mal n Paar zeilen Code
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#Region ### include ###
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <RestrictControlRegExp.au3>
#EndRegion ### include ###
;=============
#Region ### Global Button ###
Global $mButton[16]
Global $Function[17] = ['0','.','=','1','2','3','4','5','6','7','8','9','0','/','*','+','%']
Global $BN1[4] = [' / ',' * ',' + ',' - ']
Global $BN2[3] = ['7','8','9']
Global $BN3[3] = ['4','5','6']
Global $BN4[3] = ['1','2','3']
Global $BN5[3] = ['0','.',' ']
Global $BLines[5] = [16,56,96,136,176]
Global $Height[1] = [27]
Global $Text, $Text1, $Taste1, $Input
#EndRegion ### Global Button ###
#Region ### GUI ###
GUICreate("Rechner", 179, 218, 606, 437)
GUICtrlCreateGroup("", 8, 0, 161, 209)
$Input = GUICtrlCreateInput('',16,16,145,21)
For $i = 0 To 3
$mButton[$i] = GUICtrlCreateButton($BN1[$i],$BLines[$i],48,27,$Height)
Next
For $i = 1 To 3
$Num = ($i * 4)
$mButton[$Num] = GUICtrlCreateButton($BN2[$i-1],$BLines[$i-1],80,27,$Height)
$mButton[$Num+1] = GUICtrlCreateButton($BN3[$i-1],$BLines[$i-1],112,27,$Height)
$mButton[$Num+2] = GUICtrlCreateButton($BN4[$i-1],$BLines[$i-1],144,27,$Height)
$mButton[$Num+3] = GUICtrlCreateButton($BN5[$i-1],$BLines[$i-1],176,27,$Height)
Next
$Rechn = GUICtrlCreateButton('=',136,144,27,55)
$Clean = GUICtrlCreateButton('C',136,80,27,20)
GUISetState(@SW_SHOW)
#EndRegion ### GUI ###
;=============
#Region ### EVENT ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $mButton[0] to $mButton[15]
$Taste = GuictrlRead($nMsg)
$Text&= $Taste
GUICtrlSetData($Input,$Text)
Case $Rechn
_Rechn()
Case $Clean
_Clean()
EndSwitch
WEnd
#EndRegion ### EVENT ###
;=============
#Region ### Func _Rechn() ###
Func _Rechn()
;~ Zur orientierung
;~ $V = GUICtrlRead($Input,1)
;~ $1 = StringRegExp($Text,'[\d]|[\d\d]|[\d\d\d]|[\d\d\d\d\d]')
;~ $2 = StringRegExp($Text,'[\.]')
;~ $3 = StringRegExp($Text,'[\d]|[\d\d]|[\d\d\d]|[\d\d\d\d\d]')
;~ $4 = StringRegExp($Text,'[\ + ]|\ - ]|[\ / ]|[\ * ]')
;~ $5 = StringRegExp($Text,'[\d]|[\d\d]|[\d\d\d]|[\d\d\d\d\d]')
;~ $6 = StringRegExp($Text,'[\.]')
;~ $7 = StringRegExp($Text,'[\d]|[\d\d]|[\d\d\d]|[\d\d\d\d\d]')
;~ $8 = StringRegExp($Text,'[\ = ]')
;~ Fertig mit OrientierenIf StringRegExp($Text,'[\+]')Then
[/autoit] [autoit][/autoit] [autoit]
$E = $Text + $Taste
ControlSetText('','',$Input,$E)
EndIfIf StringRegExp($Text,'\-]') Then
[/autoit] [autoit][/autoit] [autoit]
$E = $Text - $Taste
ControlSetText('','',$Input,$E)
EndIfIf StringRegExp($Text,'[\/]') Then
[/autoit] [autoit][/autoit] [autoit]
$E = $Text / $Taste
ControlSetText('','',$Input,$E)
EndIfIf StringRegExp($Text,'[\*]') Then
[/autoit] [autoit][/autoit] [autoit]
$E = $Text * $Taste
ControlSetText('','',$Input,$E)
EndIfEndFunc
[/autoit]
#EndRegion ### Func _Rechn() ###
;=============
#Region ### Func _Clean() ###
Func _Clean()
ControlSetText('','',$Input,'0')
EndFunc
#EndRegion ### Func _Clean() ###
Das funktioniert bisher ganz ok...solange nur eine zahl nach dem operator kommt
und da weiss ich ned mehr weiter,wie ich das machenkann das er dan nichtmehr die lezte Zahl nimmt sondern die Ganze zahl die da steht. -
Danke name22

oh mann, ich bin wohl schonwieder müde und hab den zusammenhang nicht verstanden von progandy
-
Uuu, Interessant, und wie geht dass?
-
Eine echt "Komische" Sprache oO die wahr / ist mir bis Heute unbekannt

Aber sie erinnert mich einwenig an meine Schulzeit wo wir "Läfisch" gesprochen haben...
Das gibt etwa so:
Hey, Das wahr wieder einmal Lustig Heute
Henefey, Danafas wanafahr winifidenefer eineifeinmanafal Lunifustinifig Honofeutenefe
währ auch mal ne möglichkeit sowas zu coden höhö 