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

Beiträge von Ahnungslos

  • minesweeper rechtsklicksklick button

    • Ahnungslos
    • 22. Oktober 2009 um 14:06

    Schaun dir mal GUIGetCursorInfo() an: $array[4] gibt die Control ID zurück

    [autoit]


    $msg = GuiGetMsg()

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

    If $msg = $GUI_EVENT_SECONDARYDOWN Then
    $array = GUIGetCursorInfo($hWnd)
    If $array[4] = $Button Then MsgBox(0,"Info","rechtsklick auf Button")
    EndIf

    [/autoit]

    Ungetestet!

  • 2 Funktionen gleichzeitig - Programm hängt sich auf

    • Ahnungslos
    • 21. Oktober 2009 um 15:11

    Hab nen Netbook mit 1,6GHz, da dauert die Routine etwas länger als bei nem Gamer PC.
    Würde das ganze lieber sich anpassen lassen.

    Spoiler anzeigen
    [autoit]


    Func _prozent()
    $begin = TimerInit()

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

    $size = 0

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

    $size = $size + DirGetSize($windir & "$hf_mig$\")
    $size = $size + DirGetSize($windir & "ServicePackFiles\")
    $size = $size + DirGetSize($windir & "Prefetch\")
    $size = $size + DirGetSize($windir & "Driver Cache\i386\")
    $size = $size + DirGetSize($windir & "system32\dllcache\")
    $size = $size + DirGetSize($windir & "SoftwareDistribution\Download\")
    $size = $size + DirGetSize("C:\temp\")
    $size = $size + DirGetSize($windir & "temp\")
    $size = $size + DirGetSize($userdir & "temp\")
    $size = $size + DirGetSize($userdir & "Lokale Einstellungen\temp\")

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

    $size = $size / 1024^2

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

    $unterschied = $dir_size[12] - $size

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

    $prozent = StringFormat("%.2f", Round(($unterschied / $dir_size[12]) * 100, 2))

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

    GUICtrlSetData($lb_prozent, $prozent & " %")

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

    $dif = TimerDiff($begin)
    AdlibDisable ( )
    AdlibEnable("_prozent", $dif * 4);Löschroutiene = 3/4 der Zeit, Prozentroutine = 1/4 der Zeit
    EndFunc

    [/autoit]

    Ungetestet!

  • Variablen in eine externe Liste speichern

    • Ahnungslos
    • 16. Oktober 2009 um 11:08

    Ja, über eine ini ist dies am bequemsten zu regeln:

    [autoit]


    $prog = IniRead(@ScriptDir & "\meine.ini", "Programme", "erstes", "" )
    $pid = Run($prog)

    [/autoit]

    meine.ini:

    Code
    [Programme]
    erstes="C:\meine.exe"
  • Verschlüsseln - Entschlüsseln von Text

    • Ahnungslos
    • 16. Oktober 2009 um 10:21

    Du willst doch den verschlüsselten String entschlüsseln und nicht den Ausgangsstring.

    So sollte es gehen:

    [autoit]


    #Include <String.au3>

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

    $inputbox = InputBox ("Verschlüsselter Text", " ", "TEST", "", 250, 115)
    MsgBox (0, "Eingegebener Text", $inputbox)
    $verschluesselt = _StringEncrypt (1, $inputbox, "hallo", 4)
    MsgBox (0, "Verschlüsselter Text", $verschluesselt)
    $entschluesselt = _StringEncrypt (0,$verschluesselt, "hallo", 4) ; <-- Änderung
    MsgBox (0, "Entschlüsselter Text (Sollte = Eingebe sein)", $entschluesselt)

    [/autoit]
  • Zeilenumbruch bei StringSplit

    • Ahnungslos
    • 16. Oktober 2009 um 10:10

    Dann speicher den Text mal per

    [autoit]


    $File = FileOpen(@ScriptDir & "\Test.bin", 18) ;binäres Schreiben
    FileWrite($File, $Text)
    FileClose($File)

    [/autoit]


    und öffne die Datei in einem Hex-Editor (zb. Mirkes), da siehst du dann die Trennzeichen.

    Aber außer @CR und @LF dürfte da nichts vorkommen?!?

  • Zeilenumbruch bei StringSplit

    • Ahnungslos
    • 16. Oktober 2009 um 09:36

    Also ich hab schon des öffteren gesehen, das Zeilenumbrüche nur mit @LF umgesetzt waren.
    Versuch mal bitte den Stringsplit mit @LF und anschließend kannst du übrigen @CR mit StringReplace entfernen.

  • TCPConnect bremst Message-Routine aus

    • Ahnungslos
    • 8. Oktober 2009 um 12:37

    Hi,
    ich möchte während der Message-Routine einen Server per TCPConnect verbinden.
    Dies passiert in der Routine um bei Verbindungsverlust, diese wieder herzustellen.

    Nun ist das Problem, dass das Verbinden stellenweise bis zu 10sek dauert und das Programm in der Zeit nicht reagiert.

    Hat jmd ne Idee wie man das verhindern kann???

    Danke schonmal.
    Lg

    Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Timers.au3>

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

    Global $Socket

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

    $hWnd = GUICreate("Test",150,200)
    $login = GUICtrlCreateButton("Login",10,10,50,20)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then Exit
    If $msg = $login Then
    Init()
    GUICtrlDelete($login)
    EndIf
    WEnd

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

    Func Init()
    TCPStartUp()
    $Socket = TCPConnect(TCPNameToIP("toc.oscar.aol.com"), 9898)
    _Timer_SetTimer($hWnd, 80, "GetMsg")
    EndFunc

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

    Func GetMsg($hWnd, $Msg, $iIDTimer, $dwTime)
    #forceref $hWnd, $Msg, $iIDTimer, $dwTime
    TCPRecv($Socket, 8192)
    EndFunc

    [/autoit]
  • automatisch Tastenkombination nach 5 minuten ohne Eingabe möglich ?

    • Ahnungslos
    • 1. Oktober 2009 um 11:11

    bau mal in die While-Schleife noch ein Sleep(100) ein, sollte deine CPU etwas schonen

    lg ahnungslos

  • Desktop "einschränken" ?

    • Ahnungslos
    • 29. September 2009 um 17:38

    Sollte über die user32.dll möglich sein:

    RECT r = {0, 0 , 1024, 700};
    SystemParametersInfo(SPI_SETWORKAREA, 0, &r, SPIF_SENDCHANGE);

    SPI_SETWORKAREA = 47
    SPIF_SENDCHANGE = 2

    siehe: http://msdn.microsoft.com/en-us/library/ms724947(VS.85).aspx

    Wie das in AutoIt umsetzbar ist, sollte dann aber Jemand mit mehr Erfahrung beantworten.

  • Zeilenlänge überschritten

    • Ahnungslos
    • 26. Juli 2008 um 19:36

    ok, danke.
    da mach ich mehrer array's und lad die dann mit ner schleife in eins.

  • Zeilenlänge überschritten

    • Ahnungslos
    • 26. Juli 2008 um 19:08

    oder so, wie vorher geplant

    Spoiler anzeigen

    C:\Dokumente und Einstellungen\MasterOne\Desktop\UDF.au3 (35) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    Dim $Test[256][9] = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 569, 727, 1139, 1139, 1821, 1366, 391, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 569, 569, 1196, 1196, 1196, 1139, 2079, 1366, 1366, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1024, 1366, 1139, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 569, 569, 569, 961, 1139, 682, 1139, 1139, 1024, 1139, 1139, 569, 1139, 1139, 455, 455, 1024, 455, 1706, 1139, 1139, 1139, 1139, 682, 1024, 569, 1139, 1024, 1479, 1024, 1024, 1024, 684, 532, 684, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593, 0, 0, 0, 0, 0, 1479, 0, 0, 1251, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 1139, 0, 0, 0] _
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 682, 971, 1139, 1139, 1821, 1479, 487, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 682, 682, 1196, 1196, 1196, 1251, 1997, 1479, 1479, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1139, 1479, 1251, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 682, 569, 682, 1196, 1139, 682, 1139, 1251, 1139, 1251, 1139, 682, 1251, 1251, 569, 569, 1139, 569, 1821, 1251, 1251, 1251, 1251, 797, 1139, 682, 1251, 1139, 1593, 1139, 1139, 1024, 797, 573, 797, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593, 0, 0, 0, 0, 0, 1479, 0, 0, 1251, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1251, 0, 0, 0, 0, 0, 1251, 0, 0, 0] _
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 569, 727, 1139, 1139, 1821, 1366, 391, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 569, 569, 1196, 1196, 1196, 1139, 2079, 1366, 1366, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1024, 1366, 1139, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 569, 569, 569, 961, 1139, 682, 1139, 1139, 1024, 1139, 1139, 569, 1139, 1139, 455, 455, 1024, 455, 1706, 1139, 1139, 1139, 1139, 682, 1024, 569, 1139, 1024, 1479, 1024, 1024, 1024, 684, 532, 684, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593, 0, 0, 0, 0, 0, 1479, 0, 0, 1251, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 1139, 0, 0, 0] _
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 682, 971, 1139, 1139, 1821, 1479, 487, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 682, 682, 1196, 1196, 1196, 1251, 1997, 1479, 1479, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1139, 1479, 1251, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 682, 569, 682, 1196, 1139, 682, 1139, 1251, 1139, 1251, 1139, 682, 1251, 1251, 569, 569, 1139, 569, 1821, 1251, 1251, 1251, 1251, 797, 1139, 682, 1251, 1139, 1593, 1139, 1139, 1024, 797, 573, 797, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

  • Zeilenlänge überschritten

    • Ahnungslos
    • 26. Juli 2008 um 19:02

    Der Umbruch zählt als eine Zeile, ab einer bestimmten Länge wird der String einfach abgebrochen und es kommt die Meldung, das der String nicht geschlossen ist.

    Spoiler anzeigen


    C:\Dokumente und Einstellungen\MasterOne\Desktop\UDF.au3 (35) : ==> String missing closing quote.:
    $s = "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 569, 727, 1139, 1139, 1821, 1366, 391, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 569, 569, 1196, 1196, 1196, 1139, 2079, 1366, 1366, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1024, 1366, 1139, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 569, 569, 569, 961, 1139, 682, 1139, 1139, 1024, 1139, 1139, 569, 1139, 1139, 455, 455, 1024, 455, 1706, 1139, 1139, 1139, 1139, 682, 1024, 569, 1139, 1024, 1479, 1024, 1024, 1024, 684, 532, 684, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593, 0, 0, 0, 0, 0, 1479, 0, 0, 1251, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 1139, 0, 0, 0" & _
    "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 682, 971, 1139, 1139, 1821, 1479, 487, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 682, 682, 1196, 1196, 1196, 1251, 1997, 1479, 1479, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1139, 1479, 1251, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 682, 569, 682, 1196, 1139, 682, 1139, 1251, 1139, 1251, 1139, 682, 1251, 1251, 569, 569, 1139, 569, 1821, 1251, 1251, 1251, 1251, 797, 1139, 682, 1251, 1139, 1593, 1139, 1139, 1024, 797, 573, 797, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593, 0, 0, 0, 0, 0, 1479, 0, 0, 1251, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1251, 0, 0, 0, 0, 0, 1251, 0, 0, 0" & _
    "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 569, 727, 1139, 1139, 1821, 1366, 391, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 569, 569, 1196, 1196, 1196, 1139, 2079, 1366, 1366, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1024, 1366, 1139, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 569, 569, 569, 961, 1139, 682, 1139, 1139, 1024, 1139, 1139, 569, 1139, 1139, 455, 455, 1024, 455, 1706, 1139, 1139, 1139, 1139, 682, 1024, 569, 1139, 1024, 1479, 1024, 1024, 1024, 684, 532, 684, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593, 0, 0, 0, 0, 0, 1479, 0, 0, 1251, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 1139, 0, 0, 0" & _
    "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 682, 971, 1139, 1139, 1821, 1479, 487, 682, 682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 682, 682, 1196, 1196, 1196, 1251, 1997, 1479, 1479, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1139, 1479, 1251, 1706, 1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366, 1251, 682, 569, 682, 1196, 1139, 682, 1139, 1251, 1139, 1251, 1139, 682, 1251, 1251, 569, 569, 1139, 569, 1821, 1251, 1251, 1251, 1251, 797, 1139, 682, 1251, 1139, 1593, 1139, 1139, 1024, 797, 573, 797, 1196, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0, 0, 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1593,

    Und der ist da noch lange nicht zu Ende. ;(

  • Zeilenlänge überschritten

    • Ahnungslos
    • 26. Juli 2008 um 18:06

    es geht hierbei um schriftbreiten für 9 fonts, alles nummerisch und das umbrechen der schriftzeile hab ich schon probiert, kommt aufs gleiche problem

  • Zeilenlänge überschritten

    • Ahnungslos
    • 26. Juli 2008 um 17:49

    die Textzeile bein deklarieren des array ist zu lang für autoit

    Hilfe:

    AutoIt3 Limits/defaults:

    MAX_LINESIZE 4095 Maximum size for a line of script.

  • Zeilenlänge überschritten

    • Ahnungslos
    • 26. Juli 2008 um 17:27

    Beim Anlegen eines 2-D Array mit einer Zeilenlänge von ca. 9500 Zeichen meckert AutoIt, da ja nur 4095 Zeichen/Zeile möglich sind.

    Code
    Dim Schrift[256][9] = [[0,3453,2867,3268,2956, ...

    Gibt es eine Möglichkeit so ein Array trotzdem zu erstellen?
    Danke für eure Hilfe.

  • Zeichenbreite

    • Ahnungslos
    • 23. Juni 2008 um 13:20

    So, konnte das Problem lösen.

    Hier eine kleine Beschreibung falls es mal jemand benötigt:

    1. Mit dem Programm Typolize die Zellbreite der Buchstaben bestimmen.
    Dazu die entsprechende Schriftart laden und unter "hmtx" die "Advance Width" übernehmen.
    !!! Die Glyph-Nummer entspricht nicht der ASCII-Nummer der Zeichens !!!
    Die Glyph-Nummer eines Zeichens könnt Ihr aus "glyf" übernehmen.

    Link: http://www.ubisys.de/support_u_downloads.html

    2. Ein Array Anlegen mit den Zellbreiten ("Advance Width"):

    Dim $Arial[256] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 569, 569, 727, 1139, 1139, 1821, 1366, 391, 682,
    682, 797, 1196, 569, 682, 569, 569, 1139, 1139, 1139, 1139, 1139, 1139,
    1139, 1139, 1139, 1139, 569, 569, 1196, 1196, 1196, 1139, 2079, 1366,
    1366, 1479, 1479, 1366, 1251, 1593, 1479, 569, 1024, 1366, 1139, 1706,
    1479, 1593, 1366, 1593, 1479, 1366, 1251, 1479, 1366, 1933, 1366, 1366,
    1251, 569, 569, 569, 961, 1139, 682, 1139, 1139, 1024, 1139, 1139, 569,
    1139, 1139, 455, 455, 1024, 455, 1706, 1139, 1139, 1139, 1139, 682, 1024,
    569, 1139, 1024, 1479, 1024, 1024, 1024, 684, 532, 684, 1196, 1139, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    ; hier nur die wichtigsten Zeichen von Arial (Standardformatierung)

    3. Berechnung der Breite in Millimeter:

    Code
    Dim $Zeichen = "W"
    Dim $SG = 12          	;Schriftgröße
    
    
    $Breite = Round($SG * $Arial[Asc($Zeichen)] / 2048.0929, 3)
    ;Zeichenbreite = Schriftgröße * Zellbreite / 2048.0929
  • Zeichenbreite

    • Ahnungslos
    • 18. Juni 2008 um 21:37

    es geht mir darum einen zeilenwechsel zu ermöglichen wenn der rechte blattrand erreicht ist

    die zeichen können verschiedene schriftarten haben (auch kursiv und fett), also will ich jedes zeichen einzeln vermessen und wenn der rand erreicht ist eine neue zeile beginnen

    da ganze findet nicht in einem steuerelement statt, sondern nur rein theoretisch

    edit: werd mich doch mal mit fonts beschäftigen müssen

  • Zeichenbreite

    • Ahnungslos
    • 18. Juni 2008 um 21:23

    danke, aber das bringt mich leider nicht weiter

    wollte neben courier noch ein paar andere schriften anbieten

    hat vllt noch jemand ne idee, wie das indirekt möglich wäre,
    oder mit irgendeiner dll

  • Zeichenbreite

    • Ahnungslos
    • 18. Juni 2008 um 21:08

    Gibt es irgendeine Möglichkeit mit AutoIt die Breite eines einzelnen Zeichens zu bestimmen.
    Dieses wäre in Arial oder Times. Danke schon mal im vorraus.

  • Funktion in eine dll???

    • Ahnungslos
    • 8. Juli 2007 um 19:28

    visual c++:

    Spoiler anzeigen
    Zitat


    #include "stdafx.h"
    #include <windows.h>

    extern "C" _declspec(dllexport)int sendkey(char state[10], char key[10]);

    BOOL APIENTRY DllMain( HANDLE hModule,
    DWORD ul_reason_for_call,
    LPVOID lpReserved
    )
    {
    return TRUE;
    }

    int sendkey(char state[10], char key[10])
    {
    HWND hWnd;
    hWnd = GetActiveWindow();

    if(state[0]=='d') // für down
    {
    if(key[1]=='i') // für middel
    {
    SendMessage(hWnd,WM_KEYDOWN,VK_MBUTTON,0);
    }
    else
    {
    if(key[0]<58 )
    {
    if(key[0]>47) SendMessage(hWnd,WM_KEYDOWN,key[0]-18,0); // für Zahlen
    }
    else if(key[0]<91)
    {
    if(key[0]>64) SendMessage(hWnd,WM_KEYDOWN,key[0]-24,0); // für Großbuchstaben
    }
    else if(key[0]<123)
    {
    if(key[0]>96) SendMessage(hWnd,WM_KEYDOWN,key[0]-56,0); // für Kleinbuchstaben
    };
    };
    }
    else if(state[0]=='u') // für up
    {
    if(key[1]=='i') // für middel
    {
    SendMessage(hWnd,WM_KEYUP,VK_MBUTTON,0);
    }
    else
    {
    if(key[0]<58 )
    {
    if(key[0]>47) SendMessage(hWnd,WM_KEYUP,key[0]-18,0); // für Zahlen
    }
    else if(key[0]<91)
    {
    if(key[0]>64) SendMessage(hWnd,WM_KEYUP,key[0]-24,0); // für Großbuchstaben
    }
    else if(key[0]<123)
    {
    if(key[0]>96) SendMessage(hWnd,WM_KEYUP,key[0]-56,0); // für Kleinbuchstaben
    };
    };
    };

    return 0;
    }

    Alles anzeigen

    reagiert bis jetzt auf mittlere Maustaste, Zahlen und Buchstaben

    eine Liste weiterer Key findest du auf MSDN

    [autoit]

    $state = "down"
    $key = "middle"
    $result = DllCall("key.dll", "int", "sendkey", "str", $state, "str", $key)

    [/autoit]

    habe es noch nicht getestet stehe aber bei Problemen/Fragen bereit

    BugFix: Spoiler gesetzt

    Dateien

    key.zip 44,4 kB – 297 Downloads

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™