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

Beiträge von Micha_he

  • Input Syntaxfehler

    • Micha_he
    • 13. Mai 2009 um 09:39

    Du weißt aber, das die Option "@SW_HIDE" das Fenster versteckt !?

    Edit:
    Mal davon abgesehen, das Du wahrscheinlich in diesem Fall die CMD-Line (@ComSpec) gar nicht benötigst und es ggf. hier nur zu weiteren Fehlern führt. Meist reicht ein einaches:

    [autoit]

    case $Notes
    Run('explorer.exe "\\server\share\' & GUICtrlRead($input2) & '\Notes\Data\"')

    [/autoit]

    Edit2:
    Jetzt Leerzeichentauglich !

  • unc-pfad eines shares bestimmen

    • Micha_he
    • 12. Mai 2009 um 13:21

    Das wird auch nicht möglich sein. Bei einer Freigabe/Share wird den Clients nicht preisgegeben, wie der wirkliche Pfad ist. Der Client sieht nur:

    "\\rechner\Freigabe"

    Alles weitere wären dann nur Ordner innerhalb dieser Freigabe. Wenn der "Server" preisgeben würde, welcher Pfad hinter der Freigabe steckt, wäre das mal wieder ein riesengroßes Sicherheitsloch !

    Am Server selbst, kann man natürlich ermitteln, welcher Pfad hinter der Freigabe steckt, was Dir aber wohl nicht hilft...

  • ACL mit-/kopieren

    • Micha_he
    • 12. Mai 2009 um 00:19

    Du hast Recht !

    Obwohl die API-Funktion auch fremde User setzen können soll, funktioniert es nicht einwandfrei. Auch als Admin nicht !
    Ich schaue mal, ob ich das Problem lokalisieren kann...

  • wie kann man ein scrollbalken in ein tabfenster reinmachen

    • Micha_he
    • 11. Mai 2009 um 18:25
    Zitat von Commander21

    Also BugFix, eins muss ich ja sagen, deine Scripts sind super,
    allerdings musst du beachten, dass nicht jeder anfänger gleich mit 2D Arrays
    arbeiten will, geschweigedenn diese versteht.

    Stellt euch doch die Dimensionen fast wie in Excel vor, da versteht sie auch fast jeder (meist ohne das es ihm auffällt) :)

    Hier zur Verdeutlichung:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Starplayer (MP3-Player)

    • Micha_he
    • 10. Mai 2009 um 23:24
    Zitat von Raupi

    Oscar . Läuft bis jetzt einwandfei. Das einzig was mir bis jetzt aufgefallen ist: Immer wenn ein neuer Titel angespielt wird drängt sich der Player in den Vordergrund.

    Ich glaube der alte Fehler ist in der aktuellen Version 1.6 wieder da !?

  • Starplayer (MP3-Player)

    • Micha_he
    • 10. Mai 2009 um 23:08
    Zitat von Oscar

    Oder hast Du so viele Lieder im WAV-Format?

    Nein natürlich nicht. Aber mein aktueller Player ist der alte Winamp V2.9x. Und habe ich hauptsächlich MP3, vereinzelt WMA und durchaus die eine oder andere WAV-Datei (meist mehr ein Klang als ein Lied).
    Und da käme mir der Starplayer als Ersatz ganz recht. Gerade wo ich ihn selber hier oder dort anpassen könnte. Nur wenn er dann nur MP3 kann ?

    Ist nicht weiter wild.... ich kann ihn mir ja selbst erweitern... war halt nur ein Vorschlag !

  • GUI - Installer: Button mit Countdown?!

    • Micha_he
    • 10. Mai 2009 um 11:28
    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $Pausieren = 10
    GUICreate("Countdown")
    $hButtonP = GUICtrlCreateButton(" Pause (" & $Pausieren & ") ",20,20)
    $hButtonI = GUICtrlCreateButton(" Installieren ",100,20)
    GUISetState (@SW_SHOW)

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

    AdlibEnable("_CountDown",1000)
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit

    Case $msg = $hButtonP
    $Pausieren = -1
    AdlibDisable()
    GUICtrlSetData($hButtonP," Pause ")

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

    Case $msg = $hButtonI
    _Installieren()

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

    EndSelect
    If $pausieren = 0 Then
    AdlibDisable()
    GUICtrlSetData($hButtonP," Pause ")
    $pausieren = -1
    _Installieren()
    EndIf
    WEnd

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

    Func _Installieren()
    Msgbox(0,"","Installieren wurde gewählt")
    EndFunc

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

    Func _CountDown()
    If $Pausieren > 0 Then $pausieren -= 1
    GUICtrlSetData($hButtonP," Pause (" & $Pausieren & ") ")
    EndFunc

    [/autoit]
  • Starplayer (MP3-Player)

    • Micha_he
    • 10. Mai 2009 um 10:47

    Schade, das Du meinen Vorschlag mit den WAV-Files weder negativ kommentiert, noch in Deinen Player aufgenommen hast ;(

  • Starplayer (MP3-Player)

    • Micha_he
    • 8. Mai 2009 um 12:50

    Oscar : Warum ist Dein Player auf MP3 beschränkt ?

    Ich habe das Script mal erweitert, das auch WAV genutzt werden kann und dabei keine Fehler feststellen können, bis auch die Anzeige der Titellänge. (im Script siehe $sFileTypes)

    Edit: Hier die WAV-Version so geändert ( Zeilen 467ff, 663ff, 706ff ) das auch die Spieldauer bei WAV-Dateien angezeigt wird.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • autoit-script variable an dos-batch ubergeben

    • Micha_he
    • 8. Mai 2009 um 12:24
    Zitat von sam ghost

    @ oliverh:
    batch compile to autoit ... ist jetzt nicht wirklich eine hilfe fuer mein problem ... ;( ... mit der batch muessen noch andere kollegen arbeiten, die noch weniger ahnung von autoit haben, als ich ...

    Schreibt den jeder Deiner "unwissenden" Kollegen die Batch/AutoIt-Datei um ? Bei uns machen das nur die die wissen wie es geht. Die Anderen nutzen diese dann !
    Aber lassen wir die Diskussion darüber... muss Du ja selbst wissen.

    Hier eine Lösung:

    AutoIt-Script schreiben in dem Du die Variable mit

    [autoit]

    ConsoleWrite($variable)

    [/autoit]

    ausgibst. Dieses Script mit Aut2Exe kompillieren und dabei im Kompiler die Option 'Compile for System Console' auswählen. (als au3-Datei geht dies nicht und die Option gibt es wohl erst seit V3.3.xx)

    In der Batch weist Du einer Variablen den Wert dann wie folgt zu:

    Code
    for /f %%i in ('Autoit-Beispiel.exe') do set meineVar=%%i

    Funktioniert aber nur unter Win2000 oder neuer, da in den älteren Windows Version der For-Befehl die Option '/f' nicht kennt !

  • autoit-script variable an dos-batch ubergeben

    • Micha_he
    • 8. Mai 2009 um 11:42

    Warum schreibst Du die Batch nicht komplett nach AutoIt um ?

    Ist vom Aufwand her wahrscheinlich weniger, als die Übergabe von Batch --> AutoIt --> Batch.

  • IP ändern

    • Micha_he
    • 8. Mai 2009 um 10:09

    für die FritzBox habe ich schon mal hier im Forum etwas geschrieben. Hättest Du über die Suche finden sollen !
    aber hier geht es zu dem Beitrag : Klick

  • in Listview TXT CSV Laden

    • Micha_he
    • 8. Mai 2009 um 10:03

    siehe...

  • DefaultUsername auslesen

    • Micha_he
    • 8. Mai 2009 um 10:02

    Ideen haben wir viele, nur habe ich zur Zeit nicht das Bestreben, das Script für Dich zu schreiben !

    Die remote Registry kannst Du einfach mit "\\[rechnername]\HKLM\Software\...." auslesen, wenn Du das Recht dazu hast.
    Und für die Darstellung brauchst Du eine GUI, findest Du unter "GUICreate" in der Hilfe. Fang einfach an, poste dein Script und beschreibe wo Du nicht mehr weiterkommst.

    Und dann geht das meistens seinen Gang ;)

  • Hilfe bei Zaehlschleife

    • Micha_he
    • 7. Mai 2009 um 18:12

    Bei mir funktioniert es ohne Probleme !

    Zum Vergleich, dieses Script:

    Spoiler anzeigen
    [autoit]

    count = IniRead("config.ini","var","count",False)
    for $i=1 to $count Step +1
    $login = IniRead("config.ini","Account" & $i,"AccName",False)
    $PW = INIRead("config.ini","Account" & $i,"Password",False)
    msgbox(0,"",$PW)
    Next
    Exit

    [/autoit]

    diese Config.ini:

    Spoiler anzeigen
    Code
    var]
    count=3
    
    
    [Account1]
    AccName=Test1
    Password=abc
    
    
    [Account2]
    AccName=Test2
    Password=def
    
    
    [Account3]
    AccName=Test3
    Password=ghi
    Alles anzeigen
  • _PlaySystemSound()

    • Micha_he
    • 7. Mai 2009 um 09:13
    Zitat von funkey

    Hab mal was getestet. 'EmptyRecycleBin' ging nicht mit micha_he 's Version

    Bei mir ging's. Der Papierkorb ist zwar bei mir standardmäßig nicht definiert gewesen, aber nachdem ich in mit einem Sound versehen hatte, konnte ich ihn auch mit _PlaySystemSound() abspielen.

  • _PlaySystemSound()

    • Micha_he
    • 6. Mai 2009 um 23:52

    Genau, unabhängig unterschiedlicher Pfade und Laufwerke !

    Aber nicht unabhängig des Soundschemas ! Sondern gerade abhängig von diesem.

    Der Ersatz für Dein Besipiel wäre ja in dem Fall '_PlaySystemSound("WindowsLogoff")'. Hierbei wird kein Pfad angegaben, sondern das File abgespielt, was der User (muss nicht Admin sein) für seine Windows-Umgebung, in seinem Soundschema, definiert hat !

    Und wenn Du als aktueller User, dein Soundschema auf "keine Sounds" stellst, dann wird halt von dieser Funktion NICHTS wiedergegeben oder eben wir die schon sagtest, nur ein BEEP.

  • _PlaySystemSound()

    • Micha_he
    • 6. Mai 2009 um 23:26

    und was solltes bei der Einstellung Deiner Meinung nach kommen ?

  • _MsgBox

    • Micha_he
    • 6. Mai 2009 um 21:47
    Zitat von Commander21

    Also egal was ich mache, es kommt entweder nur dieser default dong, oder garkein sound -.-

    Welches System hast du denn? (2000, XP, Vista ...)

    Wenn Du '_PlaySystemSound("Default")' nutzt, muss doch der 'DEFAULT'-Sound kommen ! Die normale MsgBox() erzeugt doch auch den Default-Sound (und das wolltest Du doch nachbilden, oder ?).

    Ich habe es mit XP Pro, SP3 gestestet. Alle der Sound's die ich probieren konnte, erzeugen die Klänge, die unter "Systemsteuerung\Sounds und Audiogeräte\Sounds" in meinem Soundschema definiert sind.

  • _SoundPlay

    • Micha_he
    • 6. Mai 2009 um 21:40

    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]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

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