_SoundPlay

  • Hallo,

    ich stehe gerade (mal wieder) vor einem Problem, und zwar möchte ich gern wissen wann _SoundPlay fertig mit dem Abspielen ist. Ich habe leider keine Ahnung wie ich herausfinden kann, ob _SoundPlay noch am spielen ist oder nicht. Die Rückgabewerte haben mir bisher leider nicht weiter geholfen. :(

    Vielleicht könnt ihr mir da helfen.


    Gruß Bing. :)

  • könnte dir _SoundStatus nicht weiter helfen??

    poste mal dein script..

  • könnte dir _SoundStatus nicht weiter helfen??

    poste mal dein script..

    Hat mir nach einigen hin und her doch noch weiter geholfen. Vielen Dank. :)

    Jedoch habe ich jetzt eine weitere Frage. Und zwar gibt es eine Möglichkeit an die Daten von Musik Dateien heran zu kommen? Also Titel, Interpret, Genre, ect.

    Gruß Bing. :)

  • Es gibt wahrscheinlich etliche Varianten. Diese habe ich mal zu Anfangszeiten meiner AutoIt-Karriere geschrieben:

    Spoiler anzeigen
    [autoit]

    ;#include <Array.au3>
    ; Folgende Funktionen zum Auslesen der ID3Tag's
    ; werden bereitgestellt :
    ; Zurückgegeben wird ein Array mit 8 Feldern
    ; Das erste Feld (0) enthält "true" wenn mindestens
    ; ein Titel & Interpret gefunden wurde.
    ; _GetID3Tag_V1
    ; _GetID3Tag_V2
    ;
    ; Feldnummer: Inhalt:
    ; 0 True/False
    ; 1 Interpret
    ; 2 Titel
    ; 3 Album
    ; 4 Tracknummer
    ; 5 Year
    ; 6 Genre
    ; 7 Kommentar

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

    #include-once

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

    Func _GetID3Tag_V2($dateiname)
    dim $feld [8]
    $feld[0] = False

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

    if fileexists($dateiname) then
    if FileGetSize($dateiname) > 0 then
    $handle=fileopen($dateiname,0)
    $inhalt=fileread($handle)
    FileClose($handle)
    ; finde ID3-Header
    $header_pos=StringInStr($inhalt,"ID3")
    if $header_pos <> 0 then
    ; ID3Tag-Länge bestimmen und einlesen
    $taglaenge = Asc(Stringmid($inhalt,$header_pos + 6,1))*2097152 + Asc(Stringmid($inhalt,$header_pos + 7,1))*16384 + Asc(Stringmid($inhalt,$header_pos + 8,1))*128 + Asc(Stringmid($inhalt,$header_pos + 9,1)) +10
    $inhalt = StringMid($inhalt,$header_pos,$taglaenge)
    ; Unterversion ermitteln
    $version = Stringmid($inhalt,4,2)
    $version = asc(stringleft($version, 1)) & "." & asc(stringright($version,1))
    ; ID3Tag-Header entfernen
    $inhalt = StringMid($inhalt,11)
    ; wenn Version 2.3.x bis 2.4.x
    if $version >= 3.0 and $version < 5.0 then
    While StringLen($inhalt) >= 4 and StringLeft($inhalt,3) <> "3DI"
    $framelaenge = 256 * 8 * 8 * Asc(StringMid($inhalt,5,1)) + 256 * 8 * Asc(StringMid($inhalt,6,1)) + 256 * Asc(StringMid($inhalt,7,1)) + Asc(StringMid($inhalt,8,1))
    Select
    Case StringLeft($inhalt,4) = "TPE1"
    $feld[1] = StringReplace(StringReplace(StringMid($inhalt,11,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,4) = "TIT2"
    $feld[2] = StringReplace(StringReplace(StringMid($inhalt,11,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,4) = "TALB"
    $feld[3] = StringReplace(StringReplace(StringMid($inhalt,11,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,4) = "TRCK"
    $feld[4] = StringReplace(StringReplace(StringMid($inhalt,11,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,4) = "TYER"
    $feld[5] = StringReplace(StringReplace(StringMid($inhalt,11,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,4) = "TCON"
    $feld[6] = StringReplace(StringReplace(StringMid($inhalt,11,$framelaenge),chr(0),""),chr(1),"")
    $feld[6] = StringMid($feld[6],StringInStr($feld[6],")")+1)
    Case StringLeft($inhalt,4) = "COMM"
    $feld[7] = $feld[7] & StringReplace(StringReplace(StringMid($inhalt,11,$framelaenge),chr(0),""),chr(1),"")
    EndSelect
    $inhalt = StringMid($inhalt,11 + $framelaenge)
    Wend
    else
    ; wenn Version 2.2.0 bis 2.2.x
    if $version >=2.0 and $version < 3.0 then
    While StringLen($inhalt) >= 3 and StringLeft($inhalt,3) <> "3DI"
    $framelaenge = 256 * 8 * Asc(StringMid($inhalt,4,1)) + 256 * Asc(StringMid($inhalt,5,1)) + Asc(StringMid($inhalt,6,1))
    Select
    Case StringLeft($inhalt,3) = "TP1"
    $feld[1] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TT2"
    $feld[2] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TAL"
    $feld[3] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TRK"
    $feld[4] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TYE"
    $feld[5] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TCO"
    $feld[6] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "COM"
    $feld[7] = $feld[7] & StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    EndSelect
    $inhalt = StringMid($inhalt,7 + $framelaenge)
    Wend
    endif
    endif
    if $feld[1] <> "" and $feld[2] <> "" then $feld[0] = true
    endif
    endif
    endif
    Return $feld
    EndFunc ;_GetID3Tag_V2

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

    Func _GetID3Tag_V1($dateiname)
    dim $feld [8]
    dim $genre [148] = ["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip- Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","Alternative Rock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta","Top 40","Christian Rap","Pop/Funk","Jungle","Native US","Cabaret","New Wave","Psychadelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk-Rock","National Folk","Swing","Fast Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhytmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","Acapella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta","Heavy Metal","Black Metal","Crossover","Contemporary C","Christian Rock","Merengue","Salsa","Thrash Metal","Anime","JPop","SynthPop"]
    $feld[0] = false
    if fileexists($dateiname) then
    if FileGetSize($dateiname) > 0 then
    $handle=fileopen($dateiname,0)
    $inhalt=fileread($handle)
    FileClose($handle)
    $laenge = stringlen($inhalt)
    $inhalt = StringRight($inhalt,128)
    If StringLeft($inhalt,3) = "TAG" then
    $feld[2] = StringStripWS(StringMid($inhalt,4,30),3)
    $feld[1] = StringStripWS(StringMid($inhalt,34,30),3)
    $feld[3] = StringStripWS(StringMid($inhalt,64,30),3)
    $feld[4] = asc(StringMid($inhalt,126,1)) * 10 + asc(StringMid($inhalt,127,1))
    $feld[5] = StringStripWS(StringMid($inhalt,94,4),3)
    $feld[6] = $genre[asc(StringMid($inhalt,128,1))]
    $feld[7] = StringStripWS(StringMid($inhalt,98,28),3)
    endif
    if $feld[1] <> "" and $feld[2] <> "" then $feld[0] = true
    endif
    endif
    Return $feld
    EndFunc ;_GetID3Tag_V1

    [/autoit]

    Edit: weitere Möglichkeit - suche mal nach "_GetExtProperty()"

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    Einmal editiert, zuletzt von Micha_he (6. Mai 2009 um 19:47)

  • Deine Funktion funktioniert super! :)
    Dürfte ich diese auch in meinem Script verwenden? (Es wird ein Musik Player) :o

  • Von mir dürfen ALLE Funktionen für eigene Programme verwendet werden !

    Ich nutze das kostenlose AutoIt und gebe meine Scriptidee dafür an alle Anderen weiter, die diese in Ihren "kostenlosen" Anwendungen verwenden können !

    Edit:
    Ich habe hier nochmal eine weitere Version. Sie enthält noch eine UNICODE-Wandlung, wahrscheinlich weil die alte Version irgendwann unkorrekte Werte hervorbrachte. Diese Version verwende ich auch in meinem Programm zur Suche von doppelten MP3-Dateien. Ggf. solltest Du besser diese verwenden.

    GetID3Tag.au3
    [autoit]

    ; Folgende Funktionen zum Auslesen der ID3Tag's
    ; werden bereitgestellt :
    ; Zurückgegeben wird ein Array mit 8 Feldern
    ; Das erste Feld (0) enthält "true" wenn mindestens
    ; ein Titel & Interpret gefunden wurde.
    ; _GetID3Tag_V1
    ; _GetID3Tag_V2
    ;
    ; Feldnummer: Inhalt:
    ; 0 True/False
    ; 1 Interpret
    ; 2 Titel
    ; 3 Album
    ; 4 Tracknummer
    ; 5 Year
    ; 6 Genre
    ; 7 Kommentar

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

    #include-once
    #include <Unicode.au3>

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

    Func _GetID3Tag_V2($dateiname)
    Local $feld [8]
    Local $handle, $inhalt, $header_pos, $taglaenge, $version
    Local $framelaenge, $frame, $framedaten
    $feld[0] = False

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

    if fileexists($dateiname) then
    if FileGetSize($dateiname) > 0 then
    $handle=fileopen($dateiname,4)
    $inhalt=fileread($handle,FileGetSize($dateiname))
    FileClose($handle)
    ; finde ID3-Header
    $header_pos=StringInStr($inhalt,"ID3")
    if $header_pos <> 0 then
    ; ID3Tag-Länge bestimmen und einlesen
    $taglaenge = Asc(Stringmid($inhalt,$header_pos + 6,1))*2097152 + Asc(Stringmid($inhalt,$header_pos + 7,1))*16384 + Asc(Stringmid($inhalt,$header_pos + 8,1))*128 + Asc(Stringmid($inhalt,$header_pos + 9,1)) +10
    $inhalt = StringMid($inhalt,$header_pos,$taglaenge)
    ; Unterversion ermitteln
    $version = Stringmid($inhalt,4,2)
    $version = asc(stringleft($version, 1)) & "." & asc(stringright($version,1))
    ; ID3Tag-Header entfernen
    $inhalt = StringMid($inhalt,11)
    ; wenn Version 2.3.x bis 2.4.x
    if $version >= 3.0 and $version < 5.0 then
    While StringLen($inhalt) >= 4 and StringLeft($inhalt,3) <> "3DI"
    $framelaenge = 256 * 8 * 8 * Asc(StringMid($inhalt,5,1)) + 256 * 8 * Asc(StringMid($inhalt,6,1)) + 256 * Asc(StringMid($inhalt,7,1)) + Asc(StringMid($inhalt,8,1))
    $frame = StringLeft($inhalt,$framelaenge + 10)
    $inhalt = StringMid($inhalt,11 + $framelaenge)
    $framedaten = StringMid($frame,11)
    If StringLeft($frame,4) = "COMM" then
    If StringInStr($framedaten,chr(255) & chr(254),0,-1) > 1 then
    $framedaten = StringMid($framedaten,StringInStr($framedaten,chr(255) & chr(254),0,-1))
    Else
    If StringMid($framedaten,5,1) = chr(0) then $framedaten = StringMid($framedaten,6)
    EndIf
    EndIf
    if StringLeft($framedaten,1) = chr(0) or StringLeft($framedaten,1) = chr(1) then $framedaten = StringMid($framedaten,2)
    $framedaten = _Unicode2Asc($framedaten)
    If StringLeft($framedaten,1) = "?" then $framedaten = StringMid($framedaten,2)
    Select
    Case StringLeft($frame,4) = "TPE1"
    $feld[1] = StringReplace(StringReplace($framedaten,chr(0),""),chr(1),"")
    Case StringLeft($frame,4) = "TIT2"
    $feld[2] = StringReplace(StringReplace($framedaten,chr(0),""),chr(1),"")
    Case StringLeft($frame,4) = "TALB"
    $feld[3] = StringReplace(StringReplace($framedaten,chr(0),""),chr(1),"")
    Case StringLeft($frame,4) = "TRCK"
    $feld[4] = StringReplace(StringReplace($framedaten,chr(0),""),chr(1),"")
    Case StringLeft($frame,4) = "TYER"
    $feld[5] = StringReplace(StringReplace($framedaten,chr(0),""),chr(1),"")
    Case StringLeft($frame,4) = "TCON"
    $feld[6] = StringReplace(StringReplace($framedaten,chr(0),""),chr(1),"")
    $feld[6] = StringMid($feld[6],StringInStr($feld[6],")")+1)
    Case StringLeft($frame,4) = "COMM"
    $feld[7] = $feld[7] & StringReplace(StringReplace($framedaten,chr(0),""),chr(1),"")
    EndSelect
    Wend
    else
    ; wenn Version 2.2.0 bis 2.2.x
    if $version >=2.0 and $version < 3.0 then
    While StringLen($inhalt) >= 3 and StringLeft($inhalt,3) <> "3DI"
    $framelaenge = 256 * 8 * Asc(StringMid($inhalt,4,1)) + 256 * Asc(StringMid($inhalt,5,1)) + Asc(StringMid($inhalt,6,1))
    Select
    Case StringLeft($inhalt,3) = "TP1"
    $feld[1] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TT2"
    $feld[2] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TAL"
    $feld[3] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TRK"
    $feld[4] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TYE"
    $feld[5] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "TCO"
    $feld[6] = StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    Case StringLeft($inhalt,3) = "COM"
    $feld[7] = $feld[7] & StringReplace(StringReplace(StringMid($inhalt,7,$framelaenge),chr(0),""),chr(1),"")
    EndSelect
    $inhalt = StringMid($inhalt,7 + $framelaenge)
    Wend
    endif
    endif
    if $feld[1] <> "" and $feld[2] <> "" then $feld[0] = true
    endif
    endif
    endif
    Return $feld
    EndFunc ;_GetID3Tag_V2

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

    Func _GetID3Tag_V1($dateiname)
    Local $feld [8]
    Local $genre [148] = ["Blues","Classic Rock","Country","Dance","Disco","Funk","Grunge","Hip- Hop","Jazz","Metal","New Age","Oldies","Other","Pop","R&B","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death Metal","Pranks","Soundtrack","Euro-Techno","Ambient","Trip-Hop","Vocal","Jazz+Funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound Clip","Gospel","Noise","Alternative Rock","Bass","Soul","Punk","Space","Meditative","Instrumental Pop","Instrumental Rock","Ethnic","Gothic","Darkwave","Techno-Industrial","Electronic","Pop-Folk","Eurodance","Dream","Southern Rock","Comedy","Cult","Gangsta","Top 40","Christian Rap","Pop/Funk","Jungle","Native US","Cabaret","New Wave","Psychadelic","Rave","Showtunes","Trailer","Lo-Fi","Tribal","Acid Punk","Acid Jazz","Polka","Retro","Musical","Rock & Roll","Hard Rock","Folk","Folk-Rock","National Folk","Swing","Fast Fusion","Bebob","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic Rock","Progressive Rock","Psychedelic Rock","Symphonic Rock","Slow Rock","Big Band","Chorus","Easy Listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber Music","Sonata","Symphony","Booty Bass","Primus","Porn Groove","Satire","Slow Jam","Club","Tango","Samba","Folklore","Ballad","Power Ballad","Rhytmic Soul","Freestyle","Duet","Punk Rock","Drum Solo","Acapella","Euro-House","Dance Hall","Goa","Drum & Bass","Club-House","Hardcore","Terror","Indie","BritPop","Negerpunk","Polsk Punk","Beat","Christian Gangsta","Heavy Metal","Black Metal","Crossover","Contemporary C","Christian Rock","Merengue","Salsa","Thrash Metal","Anime","JPop","SynthPop"]
    Local $handle, $inhalt, $laenge
    $feld[0] = false
    if fileexists($dateiname) then
    if FileGetSize($dateiname) > 0 then
    $handle=fileopen($dateiname,0)
    $inhalt=fileread($handle)
    FileClose($handle)
    $laenge = stringlen($inhalt)
    $inhalt = StringRight($inhalt,128)
    If StringLeft($inhalt,3) = "TAG" then
    $feld[2] = StringStripWS(StringReplace(StringReplace(StringMid($inhalt,4,30),chr(0),""),chr(1),""),3)
    $feld[1] = StringStripWS(StringReplace(StringReplace(StringMid($inhalt,34,30),chr(0),""),chr(1),""),3)
    $feld[3] = StringStripWS(StringReplace(StringReplace(StringMid($inhalt,64,30),chr(0),""),chr(1),""),3)
    $feld[4] = asc(StringMid($inhalt,126,1)) * 10 + asc(StringMid($inhalt,127,1))
    $feld[5] = StringStripWS(StringReplace(StringReplace(StringMid($inhalt,94,4),chr(0),""),chr(1),""),3)
    $feld[6] = $genre[asc(StringMid($inhalt,128,1))]
    $feld[7] = StringStripWS(StringReplace(StringReplace(StringMid($inhalt,98,28),chr(0),""),chr(1),""),3)
    endif
    if $feld[1] <> "" and $feld[2] <> "" then $feld[0] = true
    endif
    endif
    Return $feld
    EndFunc ;_GetID3Tag_V1

    [/autoit]
    Unicode.au3 (nicht von mir)
    [autoit]

    Func _Asc2Unicode($AscString, $addBOM = false)
    Local $BufferSize = StringLen($AscString) * 2
    Local $FullUniStr = DllStructCreate("byte[" & $BufferSize + 2 & "]")
    Local $Buffer = DllStructCreate("byte[" & $BufferSize & "]", DllStructGetPtr($FullUniStr) + 2)
    Local $Return = DllCall("Kernel32.dll", "int", "MultiByteToWideChar", _
    "int", 0, _
    "int", 0, _
    "str", $AscString, _
    "int", StringLen($AscString), _
    "ptr", DllStructGetPtr($Buffer, 1), _
    "int", $BufferSize)
    DllStructSetData($FullUniStr, 1, 0xFF, 1)
    DllStructSetData($FullUniStr, 1, 0xFE, 2)
    If $addBOM then
    Return DllStructGetData($FullUniStr, 1)
    Else
    Return DllStructGetData($Buffer, 1)
    Endif
    EndFunc

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

    Func _Unicode2Asc($UniString)
    If Not IsBinaryString($UniString) Then
    SetError(1)
    Return $UniString
    EndIf

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

    Local $BufferLen = StringLen($UniString)
    Local $Input = DllStructCreate("byte[" & $BufferLen & "]")
    Local $Output = DllStructCreate("char[" & $BufferLen & "]")
    DllStructSetData($Input, 1, $UniString)
    Local $Return = DllCall("kernel32.dll", "int", "WideCharToMultiByte", _
    "int", 0, _
    "int", 0, _
    "ptr", DllStructGetPtr($Input), _
    "int", $BufferLen / 2, _
    "ptr", DllStructGetPtr($Output), _
    "int", $BufferLen, _
    "int", 0, _
    "int", 0)
    Local $AscString = DllStructGetData($Output, 1)
    $Output = 0
    $Input = 0
    Return $AscString
    EndFunc

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

    Func _Unicode2Utf8($UniString)
    If Not IsBinaryString($UniString) Then
    SetError(1)
    Return $UniString
    EndIf

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

    Local $UniStringLen = StringLen($UniString)
    Local $BufferLen = $UniStringLen * 2
    Local $Input = DllStructCreate("byte[" & $BufferLen & "]")
    Local $Output = DllStructCreate("char[" & $BufferLen & "]")
    DllStructSetData($Input, 1, $UniString)
    Local $Return = DllCall("kernel32.dll", "int", "WideCharToMultiByte", _
    "int", 65001, _
    "int", 0, _
    "ptr", DllStructGetPtr($Input), _
    "int", $UniStringLen / 2, _
    "ptr", DllStructGetPtr($Output), _
    "int", $BufferLen, _
    "int", 0, _
    "int", 0)
    Local $Utf8String = DllStructGetData($Output, 1)
    $Output = 0
    $Input = 0
    Return $Utf8String
    EndFunc

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

    Func _Utf82Unicode($Utf8String)
    Local $BufferSize = StringLen($Utf8String) * 2
    Local $Buffer = DllStructCreate("byte[" & $BufferSize & "]")
    Local $Return = DllCall("Kernel32.dll", "int", "MultiByteToWideChar", _
    "int", 65001, _
    "int", 0, _
    "str", $Utf8String, _
    "int", StringLen($Utf8String), _
    "ptr", DllStructGetPtr($Buffer), _
    "int", $BufferSize)
    Local $UnicodeString = StringLeft(DllStructGetData($Buffer, 1), $Return[0] * 2)
    $Buffer = 0
    Return $UnicodeString
    EndFunc

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    5 Mal editiert, zuletzt von Micha_he (7. Mai 2009 um 00:16)