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. atvaxtr

Beiträge von atvaxtr

  • alle FONTS im Ordner und Unterordner installieren

    • atvaxtr
    • 21. Januar 2015 um 21:11

    Hallo Leute,
    ich möchte gerne alle Schriftarten in einem bestimmten Ordner installieren.

    Habe dazu folgendes Skript gefunden:
    http://www.autoitscript.com/forum/topic/62…stall/?p=467555

    Leider installiert es nur die Fonts im gegenwärtigen Ordner, nicht die in den Unterordnern, also nicht rekursiv.
    Kann mir jemand das Skript so ändern, dass auch alle möglichen Fonts in allen Unterordnern mit installiert werden?
    VIelen Dank

    [autoit]

    InstallFont("\\server.local\Software\_Install\_Default\1\CORPORATE FONT\*.*")

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

    Func InstallFont($sSourceFile, $sFontDescript="", $sFontsPath="")
    Local Const $HWND_BROADCAST = 0xFFFF
    Local Const $WM_FONTCHANGE = 0x1D

    If $sFontsPath = "" Then $sFontsPath = @WindowsDir & "\fonts"

    Local $sFontName = StringRegExpReplace($sSourceFile, "^.*\\", "")
    If Not FileCopy($sSourceFile, $sFontsPath & "\" & $sFontName, 1) Then Return SetError(1, 0, 0)

    Local $hSearch = FileFindFirstFile($sSourceFile)
    Local $iFontIsWildcard = StringRegExp($sFontName, "\*|\?")
    Local $aRet, $hGdi32_DllOpen = DllOpen("gdi32.dll")

    If $hSearch = -1 Then Return SetError(2, 0, 0)
    If $hGdi32_DllOpen = -1 Then Return SetError(3, 0, 0)

    While 1
    $sFontName = FileFindNextFile($hSearch)
    If @error Then ExitLoop

    If $iFontIsWildcard Then $sFontDescript = StringRegExpReplace($sFontName, "\.[^\.]*$", "")

    $aRet = DllCall($hGdi32_DllOpen, "Int", "AddFontResource", "str", $sFontsPath & "\" & $sFontName)
    If IsArray($aRet) And $aRet[0] > 0 Then
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", _
    $sFontDescript, "REG_SZ", $sFontsPath & "\" & $sFontName)
    EndIf
    WEnd

    DllClose($hGdi32_DllOpen)
    DllCall("user32.dll", "Int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_FONTCHANGE, "int", 0, "int", 0)
    Return 1
    EndFunc

    [/autoit]
  • TXT im UTF-8/Unicode-Format auslesen und schreiben

    • atvaxtr
    • 15. Januar 2015 um 18:35

    Hallo Leute,
    ich habe per Zufall die Lösung hier gefunden:
    Man braucht garkein FileOpen, sondern man muss lediglich StringToBinary anwenden...

    Ich hab zwar keine Ahnung warum das so ist, aber es klappt :)
    Vielen Dank an alle

    [autoit]

    ; READ: TXT-File
    $vREAD = FileRead("vSourceCode.txt")

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

    ; GET: String Between
    $vBETW = _StringBetween($vREAD, "<title>", "</title>")

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

    ; CONVERT: Array to String
    $vBETW = _ArrayToString($vBETW)

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

    ; CONVERT: String to Binary
    $vBETW = StringToBinary($vBETW, 4)

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

    ; WRITE: Binary to File
    FileWrite("vResult.txt", $vBETW)

    [/autoit]
  • TXT im UTF-8/Unicode-Format auslesen und schreiben

    • atvaxtr
    • 15. Januar 2015 um 14:37

    hi kaesereibe
    ich habe natürlich alle Zahlen ausprobiert, auch 128.
    Es kommen immer noch ??? Zeichen heraus.

    Wenn ich den Text nicht editiere und direkt ausgebe, sind die Zeichen korrekt:
    Es muss aber immer eine Zahl + 16 sein. Also 16, oder 80, 272 usw.
    Es scheint am _StringBetween zu liegen... :(

    [autoit]

    #include <array.au3>
    #include <string.au3>

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

    ; OPEN: File
    $vOPEN = FileOpen("vSourceCode.txt", 16)

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

    ; READ: vOPEN
    $vREAD = FileRead($vOPEN)

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

    ; GET: String Between
    ;$vBETW = _StringBetween($vREAD, "<title>", "</title>")

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

    ; CONVERT: Array to String
    ;$vBETW = _ArrayToString($vBETW)

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

    ; WRITE: String to File
    FileWrite("vResult.txt", $vREAD)

    [/autoit]
  • TXT im UTF-8/Unicode-Format auslesen und schreiben

    • atvaxtr
    • 15. Januar 2015 um 05:26

    Hallo Leute,
    Ich will endlich AutoIt lernen um so mir eigene Programme zu schreiben.
    Nun bin ich auf das erste Problem gestoßen und hoffe, dass Ihr mir helfen könnt :))

    Also, ich habe eine Text-Datei im UTF-8-Format, das asiatische Zeichen enthält.
    Diese Datei möchte ich auslesen, und eine Zeichenkette zwischen zwei bestimmten Strings finden und diese Zeichenkette in eine neue Datei schreiben

    [autoit]


    #include <array.au3>
    #include <string.au3>

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

    ; OPEN: File
    $vOPEN = FileOpen("vSourceCode.txt")

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

    ; READ: vOPEN
    $vREAD = FileRead($vOPEN)

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

    ; GET: String Between
    $vBETW = _StringBetween($vREAD, "<title>", "</title>")

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

    ; CONVERT: Array to String
    $vBETW = _ArrayToString($vBETW)

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

    ; WRITE: String to File
    FileWrite("vResult.txt", $vBETW)

    [/autoit]

    Leider ist die neue Datei (vResult.txt) eine ANSI und die Sonderzeichen sind nur noch "???"

    Laut dieser Seite: https://autoit.de/dokumentation_…ns/FileOpen.htm
    sollte es mit dem Flag Nummer 16 klappen.

    [autoit]

    ; OPEN: File
    $vOPEN = FileOpen("vSourceCode.txt", 16)

    [/autoit]


    Leider steht in der erstellten Datei aber nur -1.

    Wo liegt mein Fehler?
    Danke für eure Hilfe :)

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™