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

Beiträge von Bitboy

  • XP-CD Key auslesen

    • Bitboy
    • 8. Dezember 2009 um 13:17

    Hab aber kein x64 System...

    Naja da es anscheinend auch auf anderen Windows-Versionen läuft hab ich die Funktion nochmal umbenannt und korrigiert. Jetzt läuft es (bei mir) in beiden Fällen.

    Spoiler anzeigen
    [autoit]

    Func _GetWinProductKey()
    Local $bKey[15]
    Local $sKey[29]
    Local $Digits[24]
    Local $Value = 0
    Local $hi = 0
    local $n = 0
    Local $i = 0
    Local $Result

    $binaryDPID = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","DigitalProductID")
    $Test = @extended

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

    If Not @Compiled Then
    If $Test = 3 Then $binaryDPID = Hex($binaryDPID)
    EndIf

    $Digits = StringSplit("BCDFGHJKMPQRTVWXY2346789","")
    $binaryDPID = stringmid($binaryDPID,105,30)

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

    For $i = 1 to 29 step 2
    $bKey[int($i / 2)] = dec(stringmid($binaryDPID,$i,2))
    next

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

    For $i = 28 To 0 Step -1
    If Mod(($i + 1), 6) = 0 Then
    $sKey[$i] = "-"
    Else
    $hi = 0
    For $n = 14 To 0 Step -1
    $Value = Bitor(bitshift($hi ,- 8) , $bKey[$n])
    $bKey[$n] = int($Value / 24)
    $hi = mod($Value , 24)
    Next
    $sKey[$i] = $Digits[$hi +1]
    EndIf

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

    Next
    For $i = 0 To 28
    $Result = $Result & $sKey[$i]
    Next

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

    Return $Result
    EndFunc

    [/autoit]

    Falls noch jemandem was zu dem @extended einfällt darf gern gepostet werden. Auch ein Test ob es unter Vista funktioniert wäre nett, ansonsten setz ich das Topic mal als gelöst.

    Danke an alle für die Hilfe

  • XP-CD Key auslesen

    • Bitboy
    • 8. Dezember 2009 um 11:56

    Hm, nee, muss irgendwie an dem @extended liegen.

    kommentiere ich die Zeile aus läuft es kompiliert (dafür im Editor nicht mehr).

  • XP-CD Key auslesen

    • Bitboy
    • 8. Dezember 2009 um 11:41

    Mir ist noch was aufgefallen, kann es sein dass es gar keinen sinnvollen cd-key mehr ausspuckt wenns kompiliert ist?

  • XP-CD Key auslesen

    • Bitboy
    • 8. Dezember 2009 um 11:20

    Ist der Algo für Vista und Win 7 derselbe?

    Kann das jemand testen?

  • XP-CD Key auslesen

    • Bitboy
    • 8. Dezember 2009 um 11:00

    Nee, hatte externe Programme zum Vergleich benutzt, darunter auch Everest, die haben alle denselben angezeigt.

    Hab auch den Fehler im englischen Forum gefunden, ein Befehl hat gefehlt.

    Hab es jetzt mal entsprechend umgebaut:
    (Kein Plan ob es unter anderen Windowsversionen funktioniert, wäre schön wenn es mal jemand testen könnte)

    Spoiler anzeigen
    [autoit]

    Func _GetXPProductKey()
    Local $bKey[15]
    Local $sKey[29]
    Local $Digits[24]
    Local $Value = 0
    Local $hi = 0
    local $n = 0
    Local $i = 0
    Local $Result

    $binaryDPID = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","DigitalProductID")
    If @extended = 3 Then $binaryDPID = Hex($binaryDPID)

    $Digits = StringSplit("BCDFGHJKMPQRTVWXY2346789","")

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

    $binaryDPID = stringmid($binaryDPID,105,30)

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

    For $i = 1 to 29 step 2
    $bKey[int($i / 2)] = dec(stringmid($binaryDPID,$i,2))
    next

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

    For $i = 28 To 0 Step -1
    If Mod(($i + 1), 6) = 0 Then
    $sKey[$i] = "-"
    Else
    $hi = 0
    For $n = 14 To 0 Step -1
    $Value = Bitor(bitshift($hi ,- 8) , $bKey[$n])
    $bKey[$n] = int($Value / 24)
    $hi = mod($Value , 24)
    Next
    $sKey[$i] = $Digits[$hi +1]
    EndIf

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

    Next
    For $i = 0 To 28
    $Result = $Result & $sKey[$i]
    Next

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

    Return $Result
    EndFunc

    [/autoit]
  • XP-CD Key auslesen

    • Bitboy
    • 8. Dezember 2009 um 09:54

    Hallo, ich arbeite an einem Inventarisierungsscript. Dazu wollte ich auch die CD-Keys von Win XP auslesen.

    Im englischen Forum gibts auch ein Script dazu, es liest den Key aber leider falsch aus:

    Spoiler anzeigen
    [autoit]

    Dim $Bin
    $Bin = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","DigitalProductID")

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

    InputBox("Product Key", "Your " & @OSVERSION & " product key is:", DecodeProductKey($bin), "", -1, 100, -1, -1)

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

    Func DecodeProductKey($BinaryDPID)
    Local $bKey[15]
    Local $sKey[29]
    Local $Digits[24]
    Local $Value = 0
    Local $hi = 0
    local $n = 0
    Local $i = 0
    Local $dlen = 29
    Local $slen = 15
    Local $Result

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

    $Digits = StringSplit("BCDFGHJKMPQRTVWXY2346789","")

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

    $binaryDPID = stringmid($binaryDPID,105,30)

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

    For $i = 1 to 29 step 2
    $bKey[int($i / 2)] = dec(stringmid($binaryDPID,$i,2))
    next

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

    For $i = $dlen -1 To 0 Step -1
    If Mod(($i + 1), 6) = 0 Then
    $sKey[$i] = "-"
    Else
    $hi = 0
    For $n = $slen -1 To 0 Step -1
    $Value = Bitor(bitshift($hi ,- 8) , $bKey[$n])
    $bKey[$n] = int($Value / 24)
    $hi = mod($Value , 24)
    Next
    $sKey[$i] = $Digits[$hi +1]
    EndIf

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

    Next
    For $i = 0 To 28
    $Result = $Result & $sKey[$i]
    Next

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

    Return $Result
    EndFunc

    [/autoit]

    Dazu hab ich ein Code Beispiel in VB gefunden, schaff es aber nicht ganz, das zu übersetzen
    http://www.planet-source-code.com/vb/scripts/ShowCode.asp?lngWId=1&txtCodeId=57164

    Auf Externe Programme möchte ich nicht zurückgreifen.

  • Erweiterung für 'My Font Tool for Tablet PC'

    • Bitboy
    • 26. November 2009 um 17:18

    Das genannte Programm gehört zu den Powertoys von Windows XP Tablet Edition.
    Es ermöglicht, die eigene Handschrift als TrueType Font zu kompilieren. Leider unterstützt das Programm selbst nur den englischen Zeichensatz und keine deutschen Umlaute.
    Mein kleines Script hebt die Schwäche zumindest teilweise auf und ermöglicht so das Hinzufügen von 12 weiteren Zeichen [ÄÖÜäöü߀°§´`]. Vielleicht kann es ja hier jemand gebrauchen.

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=..\My Font DE.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("TrayAutoPause",0)

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

    ;###################################################################
    ;# GUI erstellen
    ;###################################################################
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("German Support for My Font Tool for Tablet PC", 462, 117, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
    $Label3 = GUICtrlCreateLabel("Name der Schriftart:", 5, 7, 98, 17)
    $txtfontname = GUICtrlCreateInput("", 172, 5, 251, 21)
    $Label2 = GUICtrlCreateLabel("Fertige Schriftart speichern unter:", 5, 33, 160, 17)
    $txtfonttarget = GUICtrlCreateInput("", 172, 31, 251, 21)
    $cmdfonttarget = GUICtrlCreateButton("", 430, 32, 25, 20, 0)
    $Label1 = GUICtrlCreateLabel("Pfad der My Font Tool.exe:", 5, 59, 132, 17)
    $txtmyfontexe = GUICtrlCreateInput("", 172, 57, 251, 21)
    $cmdtxtmyfontexe = GUICtrlCreateButton("", 430, 58, 25, 20, 0)
    $cmdStart = GUICtrlCreateButton("Los!", 5, 85, 106, 26, 0)
    GUICtrlSetState($cmdStart, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    ;###################################################################
    ;# Funktionen
    ;###################################################################

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

    Func GetHTMX($sign)
    Local $InputFile2, $htmx, $ret
    $InputFile2 = FileOpen(@TempDir & "\MyFontDE\part2.ttx",0)

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

    While 1
    $htmx = FileReadLine($InputFile2)

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

    If StringInStr ($htmx, 'mtx name="' & $sign &'" ', 1) Then
    If StringCompare($sign, "A", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="A"', 'name="Adieresis"')
    ElseIf StringCompare($sign, "O", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="O"', 'name="Odieresis"')
    ElseIf StringCompare($sign, "U", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="U"', 'name="Udieresis"')
    ElseIf StringCompare($sign, "a", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="a"', 'name="adieresis"')
    ElseIf StringCompare($sign, "o", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="o"', 'name="odieresis"')
    ElseIf StringCompare($sign, "u", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="u"', 'name="udieresis"')
    ElseIf StringCompare($sign, "s", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="s"', 'name="germandbls"')
    ElseIf StringCompare($sign, "B", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="B"', 'name="degree"')
    ElseIf StringCompare($sign, "C", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="C"', 'name="section"')
    ElseIf StringCompare($sign, "E", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="E"', 'name="Euro"')
    ElseIf StringCompare($sign, "F", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="F"', 'name="grave"')
    ElseIf StringCompare($sign, "G", 1) = 0 Then
    $ret = StringReplace($htmx, 'name="G"', 'name="acute"')
    EndIf
    FileClose($InputFile2)
    Return $ret
    EndIf
    WEnd
    EndFunc

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

    Func GetTTGlyph($sign)
    Local $InputFile2, $TTGlyph, $ret, $line
    $InputFile2 = FileOpen(@TempDir & "\MyFontDE\part2.ttx",0)
    $ret = ""
    While 1
    $TTGlyph = FileReadLine($InputFile2)

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

    If StringInStr ($TTGlyph, 'TTGlyph name="' & $sign &'" ', 1) Then
    If StringCompare($sign, "A", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="A"', 'name="Adieresis"') & @CRLF
    ElseIf StringCompare($sign, "O", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="O"', 'name="Odieresis"') & @CRLF
    ElseIf StringCompare($sign, "U", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="U"', 'name="Udieresis"') & @CRLF
    ElseIf StringCompare($sign, "a", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="a"', 'name="adieresis"') & @CRLF
    ElseIf StringCompare($sign, "o", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="o"', 'name="odieresis"') & @CRLF
    ElseIf StringCompare($sign, "u", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="u"', 'name="udieresis"') & @CRLF
    ElseIf StringCompare($sign, "s", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="s"', 'name="germandbls"') & @CRLF
    ElseIf StringCompare($sign, "B", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="B"', 'name="degree"')
    ElseIf StringCompare($sign, "C", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="C"', 'name="section"')
    ElseIf StringCompare($sign, "E", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="E"', 'name="Euro"')
    ElseIf StringCompare($sign, "F", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="F"', 'name="grave"')
    ElseIf StringCompare($sign, "G", 1) = 0 Then
    $ret = StringReplace($TTGlyph, 'name="G"', 'name="acute"')
    EndIf

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

    ;Inhalt des Abschnitts auslesen
    Do
    $line = FileReadLine($InputFile2)
    $ret = $ret & $line & @CRLF
    Until StringInStr($line,"</TTGlyph>")

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

    ;Funktion beenden
    FileClose($InputFile2)
    Return $ret
    EndIf
    WEnd
    EndFunc

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

    Func CreateFontFile()
    Local $ttxfolder, $InputFile1, $InputFile2, $Outputfile, $line
    $ttxfolder = EnvGet("APPDATA") & "\My Font Tool for Tablet PC"

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

    MsgBox(64, "Hinweis", "Füllen Sie alle Felder aus, bestimmen Sie die Abstände, speichern Sie das Projekt und klicken Sie auf 'Compile'.")
    Run(GUICtrlRead($txtmyfontexe))

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

    ProcessWait("TTX.exe")

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

    While ProcessExists("TTX.exe")
    Sleep(1000)
    WEnd

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

    ;Datei kopieren
    If FileExists($ttxfolder & "\outputFont.ttx") Then
    FileCopy($ttxfolder & "\outputFont.ttx", @TempDir & "\MyFontDE\part1.ttx", 9)
    Else
    MsgBox(16, "Fehler", "Die Datei " & $ttxfolder & "\outputFont.ttx wurde nicht gefunden. Abbruch.")
    Exit
    EndIf

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

    ;Starten des 2. Durchlaufes
    MsgBox(64, "Hinweis", "Wechseln Sie wieder in den Tab 'Write'. Ändern Sie die Buchstaben entsprechend der folgenden Übersicht." _
    & @CRLF & "Speichern Sie das Projekt unter einem neuen Dateinamen ab. Die Änderungen von Abständen und Buchstaben" _
    & @CRLF & "die nicht in der Übersicht stehen werden ignoriert. Klicken Sie anschließend erneut auf 'Compile'." _
    & @CRLF & "A -> Ä ; a -> ä ; O -> Ö ; o -> ö ; U -> Ü ; u -> ü ; s -> ß ; B -> ° ; C -> § ; E -> € ; F -> ` ; G -> ´")

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

    ProcessWait("TTX.exe")
    While ProcessExists("TTX.exe")
    Sleep(1000)
    WEnd

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

    SplashTextOn("Verarbeite Dateien", "Die Zeichen werden verarbeitet und die Schrift erstellt." & @CRLF & "Dies kann etwas dauern.", 450, 68)

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

    ;Datei des 2. Durchlaufes kopieren
    If FileExists($ttxfolder & "\outputFont1.ttx") Then
    FileCopy($ttxfolder & "\outputFont1.ttx", @TempDir & "\MyFontDE\part2.ttx", 9)
    Else
    MsgBox(16, "Fehler", "Die Datei " & $ttxfolder & "\outputFont1.ttx wurde nicht gefunden. Abbruch.")
    Exit
    EndIf

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

    ;Zusammenfügen der Schriftdateien
    If FileExists(@TempDir & "\MyFontDE\Output.ttx") Then
    FileDelete(@TempDir & "\MyFontDE\Output.ttx")
    EndIf

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

    $InputFile1 = FileOpen(@TempDir & "\MyFontDE\part1.ttx",0)
    $Outputfile = FileOpen(@TempDir & "\MyFontDE\Output.ttx",1)

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

    While 1
    $line = FileReadLine($InputFile1)
    If @error = -1 Then ExitLoop
    ;GlyphIDs hinzufügen
    If StringInStr($line, '<GlyphID id="97" name="asciitilde"/>') Then
    FileWriteLine($Outputfile, ' <GlyphID id="97" name="asciitilde"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="98" name="Adieresis"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="103" name="Odieresis"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="104" name="Udieresis"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="108" name="adieresis"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="124" name="odieresis"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="129" name="udieresis"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="137" name="germandbls"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="131" name="degree"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="134" name="section"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="188" name="Euro"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="67" name="grave"/>')
    FileWriteLine($Outputfile, ' <GlyphID id="141" name="acute"/>')
    ;Map-Codes hinzufügen
    ElseIf StringInStr($line, '<map code="0x7e" name="asciitilde"/><!-- TILDE -->') Then
    FileWriteLine($Outputfile, ' <map code="0x7e" name="asciitilde"/><!-- TILDE -->')
    FileWriteLine($Outputfile, ' <map code="0xc4" name="Adieresis"/><!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->')
    FileWriteLine($Outputfile, ' <map code="0xd6" name="Odieresis"/><!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->')
    FileWriteLine($Outputfile, ' <map code="0xdc" name="Udieresis"/><!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->')
    FileWriteLine($Outputfile, ' <map code="0xe4" name="adieresis"/><!-- LATIN SMALL LETTER A WITH DIAERESIS -->')
    FileWriteLine($Outputfile, ' <map code="0xf6" name="odieresis"/><!-- LATIN SMALL LETTER O WITH DIAERESIS -->')
    FileWriteLine($Outputfile, ' <map code="0xfc" name="udieresis"/><!-- LATIN SMALL LETTER U WITH DIAERESIS -->')
    FileWriteLine($Outputfile, ' <map code="0xdf" name="germandbls"/><!-- LATIN SMALL LETTER SHARP S -->')
    FileWriteLine($Outputfile, ' <map code="0xb0" name="degree"/><!-- DEGREE SIGN -->')
    FileWriteLine($Outputfile, ' <map code="0xa7" name="section"/><!-- SECTION SIGN -->')
    FileWriteLine($Outputfile, ' <map code="0x20ac" name="Euro"/><!-- EURO SIGN -->')
    FileWriteLine($Outputfile, ' <map code="0x60" name="grave"/><!-- GRAVE ACCENT -->')
    FileWriteLine($Outputfile, ' <map code="0xb4" name="acute"/><!-- ACUTE ACCENT -->')
    ;TTGlyph und Contourinformationen hinzufügen
    ElseIf StringInStr($line, '</glyf>') Then
    FileWrite($Outputfile, GetTTGlyph("A"))
    FileWrite($Outputfile, GetTTGlyph("O"))
    FileWrite($Outputfile, GetTTGlyph("U"))
    FileWrite($Outputfile, GetTTGlyph("a"))
    FileWrite($Outputfile, GetTTGlyph("o"))
    FileWrite($Outputfile, GetTTGlyph("u"))
    FileWrite($Outputfile, GetTTGlyph("s"))
    FileWrite($Outputfile, GetTTGlyph("B"))
    FileWrite($Outputfile, GetTTGlyph("C"))
    FileWrite($Outputfile, GetTTGlyph("E"))
    FileWrite($Outputfile, GetTTGlyph("F"))
    FileWrite($Outputfile, GetTTGlyph("G"))
    FileWriteLine($Outputfile, ' </glyf>')
    ;HDMX hinzufügen
    ElseIf StringInStr($line, '</hdmxData>') Then
    FileWriteLine($Outputfile, ' Adieresis: ;')
    FileWriteLine($Outputfile, ' Odieresis: ;')
    FileWriteLine($Outputfile, ' Udieresis: ;')
    FileWriteLine($Outputfile, ' adieresis: ;')
    FileWriteLine($Outputfile, ' odieresis: ;')
    FileWriteLine($Outputfile, ' udieresis: ;')
    FileWriteLine($Outputfile, ' germandbls: ;')
    FileWriteLine($Outputfile, ' degree: ;')
    FileWriteLine($Outputfile, ' section: ;')
    FileWriteLine($Outputfile, ' Euro: ;')
    FileWriteLine($Outputfile, ' grave: ;')
    FileWriteLine($Outputfile, ' acute: ;')
    FileWriteLine($Outputfile, ' </hdmxData>')
    ;HMTX Informationen hinzufügen
    ElseIf StringInStr($line, '</hmtx>') Then
    FileWriteLine($Outputfile, GetHTMX("A"))
    FileWriteLine($Outputfile, GetHTMX("O"))
    FileWriteLine($Outputfile, GetHTMX("U"))
    FileWriteLine($Outputfile, GetHTMX("a"))
    FileWriteLine($Outputfile, GetHTMX("o"))
    FileWriteLine($Outputfile, GetHTMX("u"))
    FileWriteLine($Outputfile, GetHTMX("s"))
    FileWriteLine($Outputfile, GetHTMX("B"))
    FileWriteLine($Outputfile, GetHTMX("C"))
    FileWriteLine($Outputfile, GetHTMX("E"))
    FileWriteLine($Outputfile, GetHTMX("F"))
    FileWriteLine($Outputfile, GetHTMX("G"))
    FileWriteLine($Outputfile, ' </hmtx>')
    ElseIf StringInStr($line, 'developed by Philip Lanier 2004') Then
    $line = $line & ", German Language Support by Kai Sumann 2009"
    FileWriteLine($Outputfile, $line)
    Else
    FileWriteLine($Outputfile, $line)
    EndIf
    Wend
    FileClose($Outputfile)
    EndFunc

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

    ;#######################################################################################
    ;# Script Start
    ;#######################################################################################
    Global $Temp

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $cmdtxtmyfontexe
    $Temp = FileOpenDialog("Pfad zur My Font Tool for Tablet PC.exe auswählen","","Ausführbare Dateien (*.exe)")
    If $Temp <> "" Then
    GUICtrlSetData($txtmyfontexe, $Temp)
    EndIf
    If GUICtrlRead($txtfonttarget) <> "" AND GUICtrlRead($txtmyfontexe) <> "" And GUICtrlRead($txtfontname) <> "" Then
    GUICtrlSetState($cmdStart, $GUI_ENABLE)
    Else
    GUICtrlSetState($cmdStart, $GUI_DISABLE)
    EndIf
    Case $cmdfonttarget
    ;$Temp = FileSaveDialog("Geben Sie den Speicherort der fertigen Schriftdatei an.","", "TrueType Dateien *.ttf")
    $Temp = FileSelectFolder ("Geben Sie den Speicherort der fertigen Schriftdatei an.", "" , 1)
    If $Temp <> "" Then
    GUICtrlSetData($txtfonttarget, $Temp)
    EndIf
    If GUICtrlRead($txtfonttarget) <> "" AND GUICtrlRead($txtmyfontexe) <> "" And GUICtrlRead($txtfontname) <> "" Then
    GUICtrlSetState($cmdStart, $GUI_ENABLE)
    Else
    GUICtrlSetState($cmdStart, $GUI_DISABLE)
    EndIf
    Case $txtfontname
    If GUICtrlRead($txtfonttarget) <> "" AND GUICtrlRead($txtmyfontexe) <> "" And GUICtrlRead($txtfontname) <> "" Then
    GUICtrlSetState($cmdStart, $GUI_ENABLE)
    Else
    GUICtrlSetState($cmdStart, $GUI_DISABLE)
    EndIf
    Case $cmdStart
    GUISetState(@SW_HIDE)
    ;Temporäre Dateien von My Font Tool löschen
    FileDelete(EnvGet("APPDATA") & "\My Font Tool for Tablet PC\*.*")
    CreateFontFile()
    ;Fontdatei in dem angegebenen Ordner kompilieren
    $TTXEXEPath = StringLeft(GUICtrlRead($txtmyfontexe), StringInStr(GUICtrlRead($txtmyfontexe),"\","", -1)-1) & "\TTX\TTX.exe"
    Run ($TTXEXEPath & " " & @TempDir & "\MyFontDE\Output.ttx")
    Sleep(2000)
    SplashOff()
    FileMove(@TempDir & "\MyFontDE\Output.ttf", GUICtrlRead($txtfonttarget) & "\" & GUICtrlRead($txtfontname) & ".ttf", 9)
    Sleep(1000)
    ;Eigene temporären Dateien löschen
    DirRemove(@TempDir & "\MyFontDE", 1)
    ProcessClose("My Font Tool for Tablet PC.exe")
    GUISetState(@SW_SHOW)
    EndSwitch
    WEnd

    [/autoit]

    Bugs: Keine Bekannt
    Schönheitsfehler: Der Installationspfad wird nicht automatisch ermittelt; Hinzufügen neuer Zeichen recht schwer

  • Destop-Teddybär

    • Bitboy
    • 16. November 2009 um 20:36

    Sehr gut gemacht, kenne ein ähnliches Programm mit einem Schaf und hab mich gefragt wie das wohl programmiert ist, und jetzt gibts den quellcode frei haus :))

  • Hat zufällig von euch jemand einen Aspire H340 Server.

    • Bitboy
    • 16. November 2009 um 20:10

    Vllt ist das ne hilfe:
    3. Seite erster foreneintrag
    http://forum.home-server-blog.de/viewtopic.php?f=12&t=5364&start=30

  • [gelöst] Netzwerkproblem...

    • Bitboy
    • 16. November 2009 um 08:29

    Ist als Standardgateway die IP vom Modem eingestellt?

  • [gelöst] Netzwerkproblem...

    • Bitboy
    • 15. November 2009 um 15:05

    Falls eingeschaltet versuch mal die Energiesparoptionen zu deaktivieren. vllt gibts ein Problem damit.

    Handelt es sich denn um eine Standard-Installations-CD oder wurde die vorher mal mit n-Lite oder ähnlichem bearbeitet?
    Schon versucht mit einem Netzwerksniffer (Wireshark-portable) herauszufinden welche Anfrage soviel Zeit in Anspruch nimmt?

    Wenn du jemanden kennst der viel Ahnung hat und dem du vertraust kannst du demjenigen auch mal mit teamviewer zugriff auf deinen Rechner gestatten. Ferndiagnosen sind immer so ne Sache...

  • Kleine Frage zu FileInstall (keine Hilfe/Unterstützung)

    • Bitboy
    • 11. November 2009 um 17:38

    Durch Fileinstall wird eine Kopie der Source-File mit in das Script eingebunden. Das Einbinden passiert wenn das Script kompiliert wird. Damit das überhaupt passieren kann, muss dem Compiler natürlich gesagt werden welche Datei eingebunden werden soll. Da beim Kompilieren (natürlich) keine Variablen ausgewertet werden bleibt als einzige Möglichkeit den Pfad Hardcoded als String einzugeben.

    Zur Laufzeit wird die Datei ins angegebene Dest (-Verzeichnis) kopiert. Hier können natürlich Variablen stehen da diese ausgewertet werden.

    Hoffe es ist verständlich so.

  • GDI+ Zeichnen und als Bild speichern.

    • Bitboy
    • 9. November 2009 um 13:26

    Mann muss die Zeichnung "Doppelt" machen:

    $Brush = _GDIPlus_BrushCreateSolid('0xFF' & StringRight($Color,6))
    ...
    _GDIPlus_GraphicsFillEllipse($backbuffer, $MX-($PenWidth/2), $MY-($PenWidth/2), $PenWidth, $PenWidth, $Brush)

  • GDI+ Zeichnen und als Bild speichern.

    • Bitboy
    • 5. November 2009 um 18:02

    Klasse! Werde ich mir ganz in Ruhe ansehen um es auch zu verstehen.

    Dafür, dass die Zeichnung so "zerrissen" aussieht hatte ich auf der Arbeit selber noch ne Lösung gefunden, nur leider vergessen mir zu notieren. werde ich dann am Montag nachreichen.

  • [Name gesucht] PC von anderen Rechner aus hoch und runterfahren

    • Bitboy
    • 5. November 2009 um 10:04

    Um die Broadcast-adresse zu bestimmen kann man ein Script von Bugfix nehmen, finds leider nicht mehr auf Anhieb.

  • GDI+ Zeichnen und als Bild speichern.

    • Bitboy
    • 5. November 2009 um 08:27

    Hab 2 Probleme mit GDIPlus. Ich möchte gern wie in Paint auf eine Fläche Zeichnen können und das anschließend als Bild abspeichern (Wenn möglich mit Transparenz).
    Als Bild abspeichern geht noch gar nicht, Zeichnen funktioniert, wenn aber der Stift (Pen) breiter als 1 Pixel ist sehen die gemalten Linien "zerrissen" aus.

    Weiß jemand eine Lösung?

    Code:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #Include <GDIPlus.au3>
    #Include <Misc.au3>
    #include <GUIConstantsEx.au3>

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

    Global $aButton[6]
    Global $dll = DllOpen("user32.dll")
    Global $Color = "0x000000"

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

    $gui = GUICreate("Test Windows regions", 150, 200, @DesktopWidth-170, 20, $WS_POPUP, $WS_EX_TOOLWINDOW)
    ;Left - Top - Width - Height
    $aButton[0] = GUICtrlCreateButton("1", 0, 0, 24, 24)
    $aButton[1] = GUICtrlCreateButton("2", 24, 0, 24, 24)
    $aButton[2] = GUICtrlCreateButton("", 48, 0, 24, 24)
    GUICtrlSetBkColor($aButton[2], $Color)
    $aButton[3] = GUICtrlCreateButton("4", 72, 0, 24, 24)
    $aButton[4] = GUICtrlCreateButton("Exit", 100, 0, 24, 24)
    $aButton[5] = GUICtrlCreatePic("", 0, 30, 150, 170, BitOR(-1, $WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)

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

    $pos = WinGetPos($gui)
    _GuiHole($gui, 0, 0, 150, 150)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $aButton[4]
    Exit
    Case $aButton[0]
    MsgBox(0, '', 'Button1 geklickt')
    Case $aButton[1]
    MsgBox(0, '', 'Button2 geklickt')
    Case $aButton[2]
    $Color = _ChooseColor(2)
    If $Color <> -1 Then
    GUICtrlSetBkColor($aButton[2], $Color)
    EndIf
    Case $aButton[3]
    MsgBox(0, '', 'Button4 geklickt')
    Case $aButton[5]
    Draw()
    EndSwitch
    WEnd

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

    ;Thx an Bugfix
    Func _GuiHole($h_win, $i_x, $i_y, $i_sizew, $i_sizeh)
    Local $outer_rgn, $inner_rgn, $combined_rgn
    $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
    _WinAPI_DeleteObject($outer_rgn)
    _WinAPI_DeleteObject($inner_rgn)
    _AddCtrlRegion($combined_rgn, $aButton)
    _WinAPI_SetWindowRgn($h_win, $combined_rgn)
    EndFunc ;==>_GuiHole

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

    Func _AddCtrlRegion($full_rgn, $ctrl_id)
    Local $ctrl_pos, $ctrl_rgn
    If IsArray($ctrl_id) Then
    For $i = 0 To UBound($ctrl_id) -1
    $ctrl_pos = ControlGetPos($gui, "", $ctrl_id[$i])
    $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
    _WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    Next
    Else
    $ctrl_pos = ControlGetPos($gui, "", $ctrl_id)
    $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
    _WinAPI_CombineRgn($full_rgn, $full_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    EndIf
    EndFunc ;==>_AddCtrlRegion

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

    Func Draw()
    Local $hPen, $hGraphic, $MX, $MY, $MXOld, $MYOld, $WinPos
    Local $hBitmap

    _GDIPlus_Startup ()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND (WinGetHandle("Test Windows regions"))
    $hPen = _GDIPlus_PenCreate ('0xFF' & StringRight($Color,6),6)
    $WinPos=WinGetPos("Test Windows regions")
    ;_GDIPlus_PenSetDashCap($hPen, $GDIP_DASHCAPROUND)
    ;_GDIPlus_PenSetDashStyle($hPen, $GDIP_DASHSTYLEDASH)
    $MXOld=MouseGetPos(0) - $WinPos[0]
    $MYOld=MouseGetPos(1) - $WinPos[1]
    ; Loop until user exits
    While _IsPressed("01", $dll)
    $MX=MouseGetPos(0) - $WinPos[0]
    $MY=MouseGetPos(1) - $WinPos[1]
    _GDIPlus_GraphicsDrawLine ($hGraphic, $MXOld, $MYOld, $MX, $MY, $hPen)
    ;_GDIPlus_GraphicsDrawEllipse($hGraphic, $MX, $MY, 6, 6, $hPen) -> Fehler: Bild wird nach einiger Zeit gelöscht
    $MXOld=$MX
    $MYOld=$MY
    Wend

    ;ImageTest
    ;$hBitmap = _GDIPlus_BitmapCreateFromGraphics(150, 170, $hGraphic)
    ;$hImage = _GDIPlus_BitmapCreateFromHBITMAP ($hBitmap)
    ;$sEncoder = _GDIPlus_EncodersGetCLSID ("PNG")
    ;_GDIPlus_ImageSaveToFileEx($hBitmap, "C:\Test.png", $sEncoder)
    ;_GDIPlus_ImageSaveToFile($hBitmap, "C:\Test.bmp")

    ; Clean up resources
    _GDIPlus_PenDispose ($hPen)
    _GDIPlus_GraphicsDispose ($hGraphic)
    _GDIPlus_Shutdown ()
    EndFunc

    [/autoit]
  • BIOS

    • Bitboy
    • 2. November 2009 um 16:25

    Eventuell kannst du einige Informationen vom BIOS über WMI abfragen.
    Ändern geht aber definitiv nicht.

  • Neustart mit auto it Wichtige frage!

    • Bitboy
    • 15. Oktober 2009 um 16:17

    Wenn du dein Programm in den RunOnce Schlüssel der Rigistry schreibt kannst du auch einen Parameter übergeben.
    Dein Programm prüft einfach beim Start ob der Parameter übergeben wurde. Wenn nicht, dann startet es die Installation von vorn, wenn doch setzt es die Installation fort.

  • Flyer erstellen

    • Bitboy
    • 14. Oktober 2009 um 20:37

    Wenn ich morgen Zeit hab kann ichs mal versuchen. Müsste dann allerdings noch Wissen wie groß der Flyer sein soll, wieviele Farben verwendet werden sollen (Mehr Farben wird teurer im Druck) und in welchem Format du die Datei haben willst.

    Aber wie gesagt, kann nix versprechen.

  • Flyer erstellen

    • Bitboy
    • 14. Oktober 2009 um 20:02

    Hm, Für solche Aufgaben kommen eher Layout, bzw DTP-Programme zum Einsatz. Als OpenSource wäre da Scribus zu empfehlen (ist afaik auch das einzige) sonst bleiben nur teure Alternativen wie Quark Express oder InDesign in Frage. Nur mal so als Tipp für Interressierte ;)

    Edit: Hey 100 Beiträge :)

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™