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

Beiträge von autoBert

  • 1 Prozess mehrere Fenster, alle Titel finden

    • autoBert
    • 13. Februar 2013 um 22:26

    In [ offen ] Win Funktionen auch mit ProzessPid? ist genau die Lösung für dich. _ProcessGetWinEx gibt ein Array mit allen Fenstern zu einer PID zurück:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    $aWin = _ProcessGetWinEx(3952)
    _ArrayDisplay($aWin)

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

    Func _ProcessGetWinEx($ivPid, $svClass = "", $svTitle = "", $svText = "", $ivReturnOnlyFirstMatch = False)
    $ivPid = ProcessExists($ivPid)
    If Not $ivPid Then Return (SetError(1, 0, 0))

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

    Local $avwArray = WinList()
    Local $avRet[$avwArray[0][0]] = [0]
    Local $iFound = 0
    For $i = 1 To $avwArray[0][0]
    $avClass = DllCall("User32.dll", "int", "GetClassName", "hwnd", $avwArray[$i][1], "str", "", "int", 4096)
    If WinGetProcess($avwArray[$i][1]) = $ivPid Then
    If $svClass = "" Or (IsArray($avClass) And $avClass[2] = $svClass) Then
    If ($svTitle = "" Or StringInStr($avwArray[$i][0], $svTitle)) And ($svText = "" Or StringInStr(WinGetText($avwArray[$i][1]), $svText)) Then
    $iFound += 1
    $avRet[$iFound] = $avwArray[$i][1]
    If $ivReturnOnlyFirstMatch Then
    $avRet = $avRet[1]
    ExitLoop
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    ReDim $avRet[$iFound + 1]
    $avRet[0]=$iFound
    Return $avRet
    EndFunc ;==>_ProcessGetWinEx

    [/autoit]

    mfg autoBert

  • Problem bei Array bzw. Routen

    • autoBert
    • 12. Februar 2013 um 21:36

    Ich denke du suchst http://de.wikipedia.org/wiki/A*-Algorithmus Und da du dies ja nicht für ein Spiel sondern für die Stauumfahrung deiner Aussendienstmitarbeiter benötigst kannst du mir den sicherlich vorhandenen Link zu einer Entfernungstabelle aller dt. Städte zu ihren auf direktem Weg erreichbaren Nachbarn einstellen. Ungefähr so wie in http://upload.wikimedia.org/wikipedia/comm…ermany0.svg.png dargestellt nur in Tabellenform und für ganz Deutschland, das such ich schon länger :D

    mfg autoBert

  • Hide my Stuff

    • autoBert
    • 12. Februar 2013 um 21:21
    Zitat von Haldi

    Quick: in einer settings Datei können standard passwort und Pfad festgelegt werden.


    Und wie kommt mein Passwort und der Pfad in die INI? Ich konnte im Source kein einziges IniWrite entdecken.

    Unter Dateien verschlüsseln verstehe ich etwas mehr als nur den Dateinamen zu verschlüsseln.

    mfg autoBert

  • Problem bei Array bzw. Routen

    • autoBert
    • 12. Februar 2013 um 20:47

    Stell erst einmal vernünftige Testdaten zur Verfügung, dann schau ich es mir einmal an.

    mfg autoBert

  • Problem bei Winhttp

    • autoBert
    • 12. Februar 2013 um 19:57

    Kann dein Problem nicht nachollziehen. Das Ergebnis dieses Skript (Zeilenumbruchs- u. Syntaxfehler bereinigt und Useragent angepasst):

    [autoit]

    #include <winhttp.au3>
    Global $sHTTPUserAgent = "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.5) Gecko/20100101 Firefox/10.0.5"
    Global $hSession = _WinhttpOpen($sHTTPUserAgent)
    $hConnect = _WinhttpConnect($hSession, "test.de")

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

    $Player = _WinHttpSimpleRequest($hConnect, "GET", "/test")
    FileWrite("site.html", $Player)
    ShellExecute("site.html")

    [/autoit]

    ist identisch zu der manuell abgespeicherten Seite mit der Option nur HTML. Dass die Originalseite im Browser anders dargestellt wird ist logisch da relative Pfadangaben verwendet werden und dadurch Bilder etc. nicht geladen werden können.

    mfg autoBert

  • Über die String-Dekompression

    • autoBert
    • 9. Februar 2013 um 21:59

    Ich habe einmal Testhalber Andy's Vorschlag _LZNTCompress gegenübergestellt:

    Spoiler anzeigen
    [autoit]

    $sTest = "67B666666B76000000000000000000056B66666666B650000000000000000056B666666666676500000000000000006676666666666766000000000000000566666666666666665000000000000006666666666666666660000000000000566666666666666666650000000000005666666666666667666500000000000056677676767676767665000000000000566B777777777777B665000000000000566B7B777777777BB665000000000000066BBB7B7B7BB7BBD650000000000000056BDBBBBBBBBBBD76500000000000000056BDDDBDBDBDDD660000000000000000366BEDDDDDDEB655000000000000000005567BDEEDB76550000000000000000000055666666550000000000000000000000005555550000000000000FFFFFFFFFFFE7FFFFFF81FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFE007FFFFE007FFFFE007FFFFC003FFFFC003FFFFC003FFFFC003FFFF8001FFFF0000FFFF0000FFFE00007FFE00007FFC00003FFC00003FFC00003FFC00003FFC00003FFE00007FFE00007FFF0000FFFF0000FFFF8001FFFFE007FFFFF81FFF00000000F26A0451000000000000010000000000800300009053040030010000B0040000000000002800000020000000400000000100010000000000000100000000000000000000000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1FFFFFC3C7FFFC3FC1FF83FFC07FBFFFC1FFBFFFC7FFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFC1FFFBFC3DFFFBC3C1FFF83C3FFFFBC3FFFFF83FFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1FFFFFC007FFFC0001FF8000007F800001FF800007FF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF8003FFFF803FFFFF83FFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000F26A0451000000000000010000000000D8040000E8540400E8020000B0040000000000002800000020000000400000000100040000000000800200000000000000000000000000000000000000000000"
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sTest = ' & $sTest & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ;$sTest = '67B[6:6]B76[0:19]56B[6:8]B65[0:17]56B[6:10]765[0:16]667[6:10]766[0:15]5[6:16]5[0:14][6:18][0:13]5[6:18]5[0:12]5[6:14]76665[0:12]56677676767676767665[0:12]566B[7:12]B665[0:12]566B7B[7:9]BB665[0:13]66BBB7B7B7BB7BBD65[0:14]56BD[B:10]D765[0:15]56BDDDBDBDBDDD66[0:16]366BE[D:6]EB655[0:17]5567BDEEDB7655[0:20]55[6:6]55[0:24][5:6][0:13][F:11]E7[F:6]81[F:6]00[F:6]00[F:6]00[F:6]00[F:6]00[F:5]E007FFFFE007FFFFE007FFFFC003FFFFC003FFFFC003FFFFC003FFFF8001FFFF0000FFFF0000FFFE00007FFE00007FFC00003FFC00003FFC00003FFC00003FFC00003FFE00007FFE00007FFF0000FFFF0000FFFF8001FFFFE007[F:5]81FFF[0:8]F26A0451[0:13]1[0:10]800300009053040030010000B004[0:12]28[0:6]2[0:7]4[0:8]10001[0:13]1[0:44][F:6]00[F:44]C1[F:5]C3C7FFFC3FC1FF83FFC07FBFFFC1FFBFFFC7FFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFC1FFFBFC3DFFFBC3C1FFF83C3FFFFBC3[F:5]83[F:6]B[F:98]C1[F:5]C007FFFC0001FF8[0:5]7F800001FF800007FF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF8003FFFF803[F:5]83[F:6]B[F:54][0:8]F26A0451[0:13]1[0:10]D8040000E8540400E8020000B004[0:12]28[0:6]2[0:7]4[0:8]10004[0:10]8002[0:44]'

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

    For $i = 1 To 10
    $sTest &= $sTest
    Next

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

    $len = StringLen($sTest)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $len = ' & $len & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    $t = TimerInit()
    $a = compbin($sTest)
    ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $m = TimerDiff($t)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $m = ' & $m & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    $t = TimerInit()
    $b = decompbin($a)
    ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $b = ' & $b & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $m = TimerDiff($t)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $m = ' & $m & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    $t = TimerInit()
    $a = _LZNTCompress($sTest)
    ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $m = TimerDiff($t)
    $b = _LZNTDecompress($a)
    ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $b = ' & $b & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    $m = TimerDiff($t)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $m = ' & $m & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    Exit

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

    Func compbin($string)
    $len = StringLen($string)
    $ret = ""
    For $i = 1 To $len ;kompletten string durchlaufen
    $aktuell = StringMid($string, $i, 1) ;aktuelles token
    $anz = 1 ;anzahl gleicher token
    For $a = $i + 1 To $i + 127 ;kommt es mehrfach vor?
    If StringMid($string, $a, 1) = $aktuell And $a < $len Then ;kommt mehrfach vor
    $anz += 1
    Else
    $i = $a - 1 ;nicht mehrfach
    ExitLoop ;nächstes token
    EndIf
    Next
    If $anz > 1 Then ;mehr als 2 gleiche token gefunden
    $ret &= $aktuell & Chr(127 + $anz) ;anzahl hinter token hängen
    Else
    $ret &= $aktuell ;nur einmal vorkommenden buchstaben anhängen
    EndIf
    Next
    $Perc = Round(StringLen($ret) / $len * 100)

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

    ConsoleWrite("!> Compression: " & $Perc & "%" & @CRLF)

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

    Return $ret

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

    EndFunc ;==>compbin

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

    Func decompbin($string)
    $ret = ""
    $len = StringLen($string)
    For $i = 1 To $len
    $decomp = StringMid($string, $i, 1);aktueller buchstabe
    $token = Asc($decomp) ;aktuelles token
    If $token > 127 Then ;komprimiertes Zeichen?
    $token -= 127 ;länge
    $akt = StringMid($string, $i - 1, 1) ;aktueller zu vervielfältigende buchstabe
    $decomp = ""
    For $a = 1 To $token - 1 ;langsamer gehts nicht, aber was solls^^
    $decomp &= $akt
    Next
    EndIf
    $ret &= $decomp

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

    Next
    Return $ret

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

    EndFunc ;==>decompbin

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

    ; #FUNCTION# ;===============================================================================
    ;http://www.autoitscript.com/forum/index.ph…ndpost&p=627588
    ; Name...........: _LZNTCompress
    ; Description ...: Compresses input data.
    ; Syntax.........: _LZNTCompress ($vInput [, $iCompressionFormatAndEngine])
    ; Parameters ....: $vInput - Data to compress.
    ; $iCompressionFormatAndEngine - Compression format and engine type. Default is 2 (standard compression). Can be:
    ; |2 - COMPRESSION_FORMAT_LZNT1 | COMPRESSION_ENGINE_STANDARD
    ; |258 - COMPRESSION_FORMAT_LZNT1 | COMPRESSION_ENGINE_MAXIMUM
    ; Return values .: Success - Returns compressed binary data.
    ; - Sets @error to 0
    ; Failure - Returns empty string and sets @error:
    ; |1 - Error determining workspace buffer size.
    ; |2 - Error compressing.
    ; Author ........: trancexx
    ; Related .......: _LZNTDecompress
    ; Link ..........; http://msdn.microsoft.com/en-us/library/bb981783.aspx
    ;
    ;==========================================================================================
    Func _LZNTCompress($vInput, $iCompressionFormatAndEngine = 2)

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

    If Not ($iCompressionFormatAndEngine = 258) Then
    $iCompressionFormatAndEngine = 2
    EndIf

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

    Local $bBinary = Binary($vInput)

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

    Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]")
    DllStructSetData($tInput, 1, $bBinary)

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

    Local $a_Call = DllCall("ntdll.dll", "int", "RtlGetCompressionWorkSpaceSize", _
    "ushort", $iCompressionFormatAndEngine, _
    "dword*", 0, _
    "dword*", 0)

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

    If @error Or $a_Call[0] Then
    Return SetError(1, 0, "") ; error determining workspace buffer size
    EndIf

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

    Local $tWorkSpace = DllStructCreate("byte[" & $a_Call[2] & "]") ; workspace is needed for compression

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

    Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer

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

    Local $a_Call = DllCall("ntdll.dll", "int", "RtlCompressBuffer", _
    "ushort", $iCompressionFormatAndEngine, _
    "ptr", DllStructGetPtr($tInput), _
    "dword", DllStructGetSize($tInput), _
    "ptr", DllStructGetPtr($tBuffer), _
    "dword", DllStructGetSize($tBuffer), _
    "dword", 4096, _
    "dword*", 0, _
    "ptr", DllStructGetPtr($tWorkSpace))

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

    If @error Or $a_Call[0] Then
    Return SetError(2, 0, "") ; error compressing
    EndIf

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

    Local $tOutput = DllStructCreate("byte[" & $a_Call[7] & "]", DllStructGetPtr($tBuffer))

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

    Return SetError(0, 0, DllStructGetData($tOutput, 1))

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

    EndFunc ;==>_LZNTCompress

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

    ; #FUNCTION# ;===============================================================================
    ;
    ; Name...........: _LZNTDecompress
    ; Description ...: Decompresses input data.
    ; Syntax.........: _LZNTDecompress ($bBinary)
    ; Parameters ....: $vInput - Binary data to decompress.
    ; Return values .: Success - Returns decompressed binary data.
    ; - Sets @error to 0
    ; Failure - Returns empty string and sets @error:
    ; |1 - Error decompressing.
    ; Author ........: trancexx
    ; Related .......: _LZNTCompress
    ; Link ..........; http://msdn.microsoft.com/en-us/library/bb981784.aspx
    ;
    ;==========================================================================================
    Func _LZNTDecompress($bBinary)

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

    $bBinary = Binary($bBinary)

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

    Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]")
    DllStructSetData($tInput, 1, $bBinary)

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

    Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer

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

    Local $a_Call = DllCall("ntdll.dll", "int", "RtlDecompressBuffer", _
    "ushort", 2, _
    "ptr", DllStructGetPtr($tBuffer), _
    "dword", DllStructGetSize($tBuffer), _
    "ptr", DllStructGetPtr($tInput), _
    "dword", DllStructGetSize($tInput), _
    "dword*", 0)

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

    If @error Or $a_Call[0] Then
    Return SetError(1, 0, "") ; error decompressing
    EndIf

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

    Local $tOutput = DllStructCreate("byte[" & $a_Call[6] & "]", DllStructGetPtr($tBuffer))

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

    Return SetError(0, 0, DllStructGetData($tOutput, 1))

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

    EndFunc ;==>_LZNTDecompress

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

    Das Ergebnis:

    Code
    >"D:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Programme\AutoIt3\Test\asdfb.au3" /autoit3dir "D:\Programme\AutoIt3" /UserParams    
    +>21:51:17 Starting AutoIt3Wrapper v.2.0.0.1    Environment(Language:0407  Keyboard:00000407  OS:WIN_XP/Service Pack 3  CPU:X86 OS:X86)
    >Running AU3Check (1.54.19.0)  from:D:\Programme\AutoIt3
    +>21:51:17 AU3Check ended.rc:0
    >Running:(3.3.6.1):D:\Programme\AutoIt3\autoit3.exe "D:\Programme\AutoIt3\Test\asdfb.au3"    
    @@ Debug(2) : $sTest = 67B666666B76000000000000000000056B66666666B650000000000000000056B666666666676500000000000000006676666666666766000000000000000566666666666666665000000000000006666666666666666660000000000000566666666666666666650000000000005666666666666667666500000000000056677676767676767665000000000000566B777777777777B665000000000000566B7B777777777BB665000000000000066BBB7B7B7BB7BBD650000000000000056BDBBBBBBBBBBD76500000000000000056BDDDBDBDBDDD660000000000000000366BEDDDDDDEB655000000000000000005567BDEEDB76550000000000000000000055666666550000000000000000000000005555550000000000000FFFFFFFFFFFE7FFFFFF81FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFE007FFFFE007FFFFE007FFFFC003FFFFC003FFFFC003FFFFC003FFFF8001FFFF0000FFFF0000FFFE00007FFE00007FFC00003FFC00003FFC00003FFC00003FFC00003FFE00007FFE00007FFF0000FFFF0000FFFF8001FFFFE007FFFFF81FFF00000000F26A0451000000000000010000000000800300009053040030010000B0040000000000002800000020000000400000000100010000000000000100000000000000000000000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1FFFFFC3C7FFFC3FC1FF83FFC07FBFFFC1FFBFFFC7FFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFC1FFFBFC3DFFFBC3C1FFF83C3FFFFBC3FFFFF83FFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1FFFFFC007FFFC0001FF8000007F800001FF800007FF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF8003FFFF803FFFFF83FFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000F26A0451000000000000010000000000D8040000E8540400E8020000B0040000000000002800000020000000400000000100040000000000800200000000000000000000000000000000000000000000
    >Error code: 0
    @@ Debug(10) : $len = 1718272
    >Error code: 0
    !> Compression: 44%
    @@ Debug(16) : $m = 23215.936382976
    >Error code: 0
    @@ Debug(22) : $m = 12565.5978622981
    >Error code: 0
    @@ Debug(31) : $m = 190.191211452852
    >Error code: 0
    +>21:51:53 AutoIT3.exe ended.rc:0
    +>21:51:54 AutoIt3Wrapper Finished
    >Exit code: 0    Time: 37.967
    Alles anzeigen

    überrascht mich nicht da ja Andy (bisher noch ) nicht in die Assembler Trickkiste gegriffen hat.

    mfg autoBert

  • Über die String-Dekompression

    • autoBert
    • 9. Februar 2013 um 20:25

    Hallo minx,

    mit diesen Funktionen habe ich positive Erfahrungen:

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION# ;===============================================================================
    ;http://www.autoitscript.com/forum/index.ph…ndpost&p=627588
    ; Name...........: _LZNTCompress
    ; Description ...: Compresses input data.
    ; Syntax.........: _LZNTCompress ($vInput [, $iCompressionFormatAndEngine])
    ; Parameters ....: $vInput - Data to compress.
    ; $iCompressionFormatAndEngine - Compression format and engine type. Default is 2 (standard compression). Can be:
    ; |2 - COMPRESSION_FORMAT_LZNT1 | COMPRESSION_ENGINE_STANDARD
    ; |258 - COMPRESSION_FORMAT_LZNT1 | COMPRESSION_ENGINE_MAXIMUM
    ; Return values .: Success - Returns compressed binary data.
    ; - Sets @error to 0
    ; Failure - Returns empty string and sets @error:
    ; |1 - Error determining workspace buffer size.
    ; |2 - Error compressing.
    ; Author ........: trancexx
    ; Related .......: _LZNTDecompress
    ; Link ..........; http://msdn.microsoft.com/en-us/library/bb981783.aspx
    ;
    ;==========================================================================================
    Func _LZNTCompress($vInput, $iCompressionFormatAndEngine = 2)

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

    If Not ($iCompressionFormatAndEngine = 258) Then
    $iCompressionFormatAndEngine = 2
    EndIf

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

    Local $bBinary = Binary($vInput)

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

    Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]")
    DllStructSetData($tInput, 1, $bBinary)

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

    Local $a_Call = DllCall("ntdll.dll", "int", "RtlGetCompressionWorkSpaceSize", _
    "ushort", $iCompressionFormatAndEngine, _
    "dword*", 0, _
    "dword*", 0)

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

    If @error Or $a_Call[0] Then
    Return SetError(1, 0, "") ; error determining workspace buffer size
    EndIf

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

    Local $tWorkSpace = DllStructCreate("byte[" & $a_Call[2] & "]") ; workspace is needed for compression

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

    Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer

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

    Local $a_Call = DllCall("ntdll.dll", "int", "RtlCompressBuffer", _
    "ushort", $iCompressionFormatAndEngine, _
    "ptr", DllStructGetPtr($tInput), _
    "dword", DllStructGetSize($tInput), _
    "ptr", DllStructGetPtr($tBuffer), _
    "dword", DllStructGetSize($tBuffer), _
    "dword", 4096, _
    "dword*", 0, _
    "ptr", DllStructGetPtr($tWorkSpace))

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

    If @error Or $a_Call[0] Then
    Return SetError(2, 0, "") ; error compressing
    EndIf

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

    Local $tOutput = DllStructCreate("byte[" & $a_Call[7] & "]", DllStructGetPtr($tBuffer))

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

    Return SetError(0, 0, DllStructGetData($tOutput, 1))

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

    EndFunc ;==>_LZNTCompress

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

    ; #FUNCTION# ;===============================================================================
    ;
    ; Name...........: _LZNTDecompress
    ; Description ...: Decompresses input data.
    ; Syntax.........: _LZNTDecompress ($bBinary)
    ; Parameters ....: $vInput - Binary data to decompress.
    ; Return values .: Success - Returns decompressed binary data.
    ; - Sets @error to 0
    ; Failure - Returns empty string and sets @error:
    ; |1 - Error decompressing.
    ; Author ........: trancexx
    ; Related .......: _LZNTCompress
    ; Link ..........; http://msdn.microsoft.com/en-us/library/bb981784.aspx
    ;
    ;==========================================================================================
    Func _LZNTDecompress($bBinary)

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

    $bBinary = Binary($bBinary)

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

    Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]")
    DllStructSetData($tInput, 1, $bBinary)

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

    Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer

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

    Local $a_Call = DllCall("ntdll.dll", "int", "RtlDecompressBuffer", _
    "ushort", 2, _
    "ptr", DllStructGetPtr($tBuffer), _
    "dword", DllStructGetSize($tBuffer), _
    "ptr", DllStructGetPtr($tInput), _
    "dword", DllStructGetSize($tInput), _
    "dword*", 0)

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

    If @error Or $a_Call[0] Then
    Return SetError(1, 0, "") ; error decompressing
    EndIf

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

    Local $tOutput = DllStructCreate("byte[" & $a_Call[6] & "]", DllStructGetPtr($tBuffer))

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

    Return SetError(0, 0, DllStructGetData($tOutput, 1))

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

    EndFunc ;==>_LZNTDecompress

    [/autoit]

    mfg autoBert

  • GUI: Buttons mit Funktionen verknüpfen? (Anfänger)

    • autoBert
    • 9. Februar 2013 um 12:41
    Zitat von Trojan

    Oscar funktioniert das mit den Checkboxen auch mit Buttons? Wenn ja wie?


    Schau dir [ gelöst ] Problem beim Afragen von For erstellten Variablen / ID's / Elementen an,

    mfg autoBert

  • warum geht das fenster immer zu

    • autoBert
    • 9. Februar 2013 um 12:30

    Wenn du schon ein Skript einsellst sollte dieses, bis auf den Fehler, auch lauffähig sein:

    C
    >Running AU3Check (1.54.19.0)  from:D:\Programme\AutoIt3
    D:\Programme\AutoIt3\Test\asdfb.au3(21,10) : ERROR: can't open include file <BkPic.au3>
    #include <BkPic.au3>
    ~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(41,27) : ERROR: mma(): undefined function.
    HotKeySet("^+!{f8}", "mma")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(64,35) : ERROR: _Base64String(): undefined function.
    _Base64String($bSaveBinary = False)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(65,26) : ERROR: _Base64Decode(): undefined function.
    _Base64Decode($sB64String)
    ~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(126,14) : ERROR: background(): undefined function.
    background(-1)
    ~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3 - 5 error(s), 0 warning(s)
    !>12:21:49 AU3Check ended.rc:2
    +>12:21:54 AutoIt3Wrapper Finished
    >Exit code: 0    Time: 8.848
    Alles anzeigen

    da kein Mensch ahnt wie es in deinem Skript wirlich aussieht solltest du

    • es schnellstens ein stellen
    • bzw. keine sinnvolle Hilfe erwarten.

    mfg autoBert

  • Dateiliste in Array => Einzelne Dateien aus Array bearbeiten, wie Array auslesen?

    • autoBert
    • 7. Februar 2013 um 19:40

    nachdem die "2" bereits gelärt ist:

    Zitat von melman01

    der Pfad zum Ordner fehlt (ich denke ich werde den für die Bearbeitung brauchen, sonst werden wohl die Dateien nicht gefunden..)

    Dieser wird allerdingsbenötigt, da aber _FileListToArray nur die Dateien ins Array speichert musst du dir den Pfad schon selbst im Skript merken und dann bei einem späteren Aufrufen einer Datei mit dazu nehmen:

    [autoit]

    For $i = 1 to $FileList[0]
    $Test = $quellordner&"\"&($FileList[$i])
    ConsoleWrite($Test)
    Next

    [/autoit]

    mfg autoBert

  • prüfen ob verzeichnis vorhanden?

    • autoBert
    • 6. Februar 2013 um 22:52
    Zitat von Marthog

    Wobei bei FileExists aber nicht der unterschieden wird, ob es ein Verzeichnis oder eine Datei ist.


    Dies kannst du als Programmierer mit Anhängen eines "\" ja selbst steuern:

    [autoit]

    $sDir = @ScriptDir&"\Test\"
    $sFile = @ScriptDir&"\Test"

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

    if Not FileExists($sDir) Then
    ConsoleWrite($sDir& " existiert nicht" &@CRLF)
    FileWriteLine($sFile,"Aber jetzt existiert eine Datei")
    EndIf
    if Not FileExists($sDir) Then ConsoleWrite($sDir& " existiert immer noch nicht" &@CRLF)
    if FileExists($sFile) Then ConsoleWrite($sFile& " existiert aber" &@CRLF)

    [/autoit]

    mfg autoBert

  • Happy Glückwunsch Andy zum 47'ten

    • autoBert
    • 5. Februar 2013 um 16:37

    Auch von mir noch nachträglich die besten Wünsche natürlich auch a Bembelsche mit Äppelsche

  • Probleme mit GUI und allgemeinem Aufbau

    • autoBert
    • 4. Februar 2013 um 23:32
    Zitat von timy17

    bluestacks ist ein android simulator.


    Soviel weis ich auch nur das ich Emulator und Simulator aus einander halten kann. Da auf diesem Emulator auch jede Android-Spiel-App läuft und man bei einer sinnvollen App nicht laufend die selben Mouseclicks in der gleichen Reihenfolge (Motto: Klicken nach Farben) ausführen muss bist du überführt du Simulatornt.

    Daher erneut: Vote for recycle-bin

    mfg autoBert

  • Probleme mit GUI und allgemeinem Aufbau

    • autoBert
    • 4. Februar 2013 um 22:21

    Und gewöhne dir vor allem an keine Skripte welche gegen die Forenregeln verstossen einzustellen.

    Daher: Vote for recycle-bin

  • Word Datei speichern

    • autoBert
    • 2. Februar 2013 um 18:23

    Ich denke du suchst

    [autoit]

    _WordAttach

    [/autoit]

    ansonsten schau dir auch

    [autoit]

    _WordCreate

    [/autoit]

    an.

    mfg autoBert

  • Änderungen einer .ini Datei vor einer portablen App neu Includen

    • autoBert
    • 31. Januar 2013 um 18:44
    Zitat von timyboy

    Also scheint es irgendwie nicht möglich zu sein, wenn von den grossen Programmierern auch keiner nen Rat hat... was könnte man als Alternative effektiv anwenden?


    Wenn das ganze eine portable App bleiben soll nichts. Wenn der DAU die Anwendung wo anders hin kopiert muss er auch die INI mit kopieren, ansonsten hat er eine jungfräuliche Anwendung. Natürlich musst du dafür sorgen dass die INI nur installiert wird wenn sie noch nicht vorhanden ist!

    mfg autoBert

  • Mehrere Sessions für _IECreateEmbedded()

    • autoBert
    • 31. Januar 2013 um 18:26

    Hallo bennithebrain,

    eine rein rethorische Frage schafst du es denn 2 oder mehr IE-Instanzen ohne Skript aufzumachen und dich in jeder mit verschiedenen Accountdaten an der gleichen Website an zu melden und dann auch noch in jeder Instanz die Daten entsprechend demjeweligen Account zu bekommen?

    • Nein, warum sollte es dann automatisiert gehen?
    • Ja, nenne bitte die WebSite bei der dies möglich ist!

    mfg autoBert

  • GUI updaten - Team To Do Liste

    • autoBert
    • 30. Januar 2013 um 20:05
    Zitat von seturo1375

    Bert deine Variante ist natürlich super deluxe effzient, aber ich wollte
    das ganze mit Auswertung wer was gemacht in der GUI darstellen, deswegen auch die User Abfrage.

    Es soll ja nur ein Beispiel sein.

    Zitat von seturo1375

    Das Tool soll an mehreren PCs
    gleichzeitig laufen können.


    Gibt Chaos wenn eine INI als "DB" von mehreren verwendet wird.

    mfg autoBert

  • Änderungen einer .ini Datei vor einer portablen App neu Includen

    • autoBert
    • 30. Januar 2013 um 11:55
    Zitat von timyboy

    Jup, hast recht hatte das jetzt verwechselt ... wie meinste das mit der ini funktion? mache dies moementan mit fileinstall... :( ?


    Ist eine Möglichkeit darf aber nur installiert werden wenn noch nicht vorhandensons werden beim nächsten Programmstart die Änderungen an der INI wieder überschrieben.
    Ich meinte die INI-Funktionen:

    [autoit]

    IniRead
    IniReadSection
    IniReadSectionNames
    IniWrite
    ;etc

    [/autoit]

    mfg autoBert

  • GUI updaten - Team To Do Liste

    • autoBert
    • 30. Januar 2013 um 10:59

    Du solltest die ControlIDs deiner Checkboxen und den dazugehörigen Labels ("Guest") in einem Array speichern. Dann kannst du für jede Checkbox die gleiche Funktion aufrufen und dann anhand des Makros @GUI_CtrlId über eine einfache Rehenformel gezielt die Checkbox auswerten. Beispiel für diese Technik:

    Spoiler anzeigen
    [autoit]

    ;http://www.autoit.de/index.php?page…3282#post293282
    #include <GUIConstantsEx.au3>

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

    Opt('MustDeclareVars', 1)
    Opt("GUIOnEventMode", 1)

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

    Const $sIni = @ScriptDir & "\Aufgaben.ini"
    Const $iRed = 0xFF0000
    Const $iGreen = 0x00FF00
    Global $idChkAufgaben[8]
    Global $idLblAufgaben[8]
    Global $hGui = GUICreate("Beispiel für @GUI_CtrlId ", 800, 600)
    GUISetFont(10, 400, 0, "Arial")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
    For $i = 0 To 7
    $idChkAufgaben[$i] = GUICtrlCreateCheckbox("Aufgabe " & $i + 1, 35, 53 + $i * 60, 200, 40)
    GUICtrlSetOnEvent(-1, "_AufgabenCheck")
    ;GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    GUICtrlSetBkColor(-1, $iRed)
    Next
    For $i = 0 To 7
    $idLblAufgaben[$i] = GUICtrlCreateLabel("", 248, 56 + $i * 60, 200, 38)
    ;GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    If IniRead($sIni, "Main", "Aufgabe[" & $i & "]", 4) = 1 Then
    GUICtrlSetState($idChkAufgaben[$i], $GUI_CHECKED)
    _TeilAufgabe($i)
    EndIf
    Next
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(5555)
    WEnd

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

    Func _Close()
    For $iArrayNr = 0 To 7
    IniWrite($sIni, "Main", "Aufgabe[" & $iArrayNr & "]", GUICtrlRead($idChkAufgaben[$iArrayNr]))
    Next
    Exit
    EndFunc ;==>_Close

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

    Func _AufgabenCheck()
    Local $iArrayNr = @GUI_CtrlId - $idChkAufgaben[0] ;umrechnen der CtrlID zu Arrayelement
    _TeilAufgabe($iArrayNr)
    EndFunc ;==>_AufgabenCheck

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

    Func _TeilAufgabe($iArrayNr)
    ;ConsoleWrite($iArrayNr&@CRLF)
    If BitAND(GUICtrlRead($idChkAufgaben[$iArrayNr]), $GUI_CHECKED) Then
    GUICtrlSetData($idLblAufgaben[$iArrayNr], "ist erledigt")
    GUICtrlSetBkColor($idChkAufgaben[$iArrayNr], $iGreen)
    Else
    GUICtrlSetData($idLblAufgaben[$iArrayNr], "ist noch zu erledigen")
    GUICtrlSetBkColor($idChkAufgaben[$iArrayNr], $iRed)
    EndIf
    EndFunc ;==>_TeilAufgabe

    [/autoit]

    mfg autoBert

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™