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

Beiträge von bollen

  • Hex Farbverlauf mit definierter Anzahl

    • bollen
    • 31. März 2014 um 17:43

    Das sollte exakt die Funktion der Seite nachbilden

    [autoit]

    #include<array.au3>
    #include <WinAPIGdi.au3>
    $iSchritte=10+2;+2 für Start und Endwerte
    $iStartwert=0xBF3F00
    $iEndwert=0xFFFF00
    Dim $a_iergebnis[$iSchritte][3];Array für Farben (in R G B getrennt)

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

    $iR_alt = _WinAPI_GetRValue($iStartwert);einzelne Farbanteile holen
    $iG_alt = _WinAPI_GetGValue($iStartwert);dito
    $iB_alt = _WinAPI_GetBValue($iStartwert);..

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

    $iR_neu = _WinAPI_GetRValue($iEndwert);einzelne Farbanteile holen
    $iG_neu = _WinAPI_GetGValue($iEndwert);dito
    $iB_neu = _WinAPI_GetBValue($iEndwert);..

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

    $fR_schrittweite=($iR_neu-$iR_alt)/($iSchritte-1);schrittweite Rot
    $fG_schrittweite=($iG_neu-$iG_alt)/($iSchritte-1);schrittweite Grün
    $fB_schrittweite=($iB_neu-$iB_alt)/($iSchritte-1);schrittweite Blau

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

    For $i1=0 to $iSchritte -1
    $a_iergebnis[$i1][0]=Round($iR_alt+($fR_schrittweite*$i1));Berechnen und Runden
    $a_iergebnis[$i1][1]=Round($iG_alt+($fG_schrittweite*$i1));...
    $a_iergebnis[$i1][2]=Round($iB_alt+($fB_schrittweite*$i1));..
    Next
    _ArrayDisplay($a_iergebnis);Anzeige

    [/autoit]
  • Autoit Skript Verstecken/Schützen/Unerkennbar machen

    • bollen
    • 12. März 2014 um 20:26

    Wenn der Schlüssel nur verglichen wird (z.B. mit einer Eingabe) könntest du den schlüssel sowie die eingabe mit

    [autoit]

    #include <Crypt.au3>
    _Crypt_HashData ( $vData, $iALG_ID [, $fFinal = True [, $hCryptHash = 0]] )

    [/autoit]

    Hashen und dann vergleichen. So steht nur der Hash im Programm und nirgends der Hauptschlüssel.

  • Command Line Befehl

    • bollen
    • 5. März 2014 um 17:09

    Mit ShellExecute kannst du die Aut2exe.exe oder Aut2exe_x64.exe mit Parameter ausführen

    [autoit]

    Aut2exe.exe /in <infile.au3> [/out <outfile.exe>] [/icon <iconfile.ico>] [/comp 0-4] [/nopack] [/x64] [/bin <binfile.bin>]

    [/autoit]

    In der Hilfe unter AutoIt-Using AutoIt-Compiling Scripts ist näheres beschrieben

  • Tetris

    • bollen
    • 26. Februar 2014 um 20:37

    Nach kurzem überfliegen hab ich eine hässliche fast ohne Kommentare oder errorhandling versehene version gemacht. Die genau so schlecht zum lesen ist wie das Original :D aber die gewollten Funktionen enthällt

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #include <GUIConstants.au3>
    #include <Array.au3>

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

    AutoItSetOption("MustDeclareVars", 1)

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

    Global $pieces = 3

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

    Global $points

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

    Global Const $BOARD_WIDTH = 10
    Global Const $BOARD_HEIGHT = 20
    Global Const $EMPTY_COLOUR = -0xFfffff
    Global Const $TOWER_COLOUR = 0x40e0d0
    Global Const $BOX_COLOUR = 0xffff00
    Global Const $PYRAMID_COLOUR = 0xff00ff
    Global Const $LLEANER_COLOUR = 0xff0000
    Global Const $RLEANER_COLOUR = 0x00ff00
    Global Const $LKNIGHT_COLOUR = 0xffa500
    Global Const $RKNIGHT_COLOUR = 0x0000CD

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

    Global $g_lblGameBoard[$BOARD_WIDTH][$BOARD_HEIGHT]
    Global $g_lblPreviewBoard[4][4]
    Global $g_lblPreviewBoard2[4][4]
    Global $g_lblPreviewBoard3[4][4]
    Global $g_aBoard[$BOARD_WIDTH][$BOARD_HEIGHT]
    Global $g_aGameShape[4][4], $g_aPreShape[4][4], $g_aPreShape2[4][4], $g_aPreShape3[4][4]
    Global $g_nShapeX, $g_nShapeY
    Global $g_nGameTick
    Global $g_lblScore
    Global $g_btnMoveLeft, $g_btnMoveRight
    Global $g_btnRotate, $g_btnDrop
    Global $g_btnStart
    Global $g_bGameStarted = False
    Global $msg
    Global $lbLost
    Global $lost = False
    Global $iShape_1 = -1, $iShape_2 = -1, $iShape_3 = -1, $hold = -1, $iShape_HOLD = -1; neue Variablen
    GUICreate("Häcker'sches Tetris", 490, 560)

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

    _DrawGameBoard()
    _DrawPreviewBoard()

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

    $g_lblScore = GUICtrlCreateLabel("SCORE: 0", 350, 450, 165, 20)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetColor(-1, 0x00FF00)
    GUISetBkColor(0x000000)

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

    $g_btnStart = GUICtrlCreateButton("START)", 350, 400, 100, 35)
    GUICtrlSetState(-1, $GUI_FOCUS)

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

    GUISetState(@SW_SHOW)

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

    Func _NewGame()
    GUICtrlDelete($lbLost)
    $lost = False
    Local $i, $j

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

    AdlibUnRegister()
    HotKeySet("{NUMPADADD}", "_HoldShape")
    HotKeySet("{LEFT}", "_MoveShapeLeft")
    HotKeySet("{RIGHT}", "_MoveShapeRight")
    HotKeySet("{UP}", "_RotateShape")
    HotKeySet("{DOWN}", "_MoveShapeDown")
    HotKeySet("{SPACE}", "_DropShape")
    $g_bGameStarted = False
    For $i = 0 To $BOARD_WIDTH - 1
    For $j = 0 To $BOARD_HEIGHT - 1
    $g_aBoard[$i][$j] = $EMPTY_COLOUR
    GUICtrlSetBkColor($g_lblGameBoard[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Next
    Next
    _NewShape()
    $g_bGameStarted = True
    _DrawGameShape()
    $g_nGameTick = 1500
    AdlibRegister("_MoveShapeDown", $g_nGameTick)
    EndFunc ;==>_NewGame

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

    Func _IsPressed($hexKey)
    Local $hDll = DllOpen("user32.dll");
    Local $aR, $bRv
    $aR = DllCall($hDll, "int", "GetAsyncKeyState", "int", $hexKey)

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

    If $aR[0] <> 0 Then
    $bRv = 1
    Else
    $bRv = 0
    EndIf
    Return $bRv
    EndFunc ;==>_IsPressed

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $g_btnStart
    GUICtrlSetState($g_btnStart, $GUI_DISABLE)
    _NewGame()
    EndSelect
    WEnd
    GUIDelete()

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

    Func _HoldShape();nur Block nummer gespeichert
    ; hold shape speichert das nächste nicht das aktuelle teil und setzt es bei erneutem shift hinten (pos 3) wider an
    If $hold = -1 Then
    $hold = $iShape_1
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aPreShape[$i][$j] = $EMPTY_COLOUR;altes löschen
    $g_aPreShape2[$i][$j] = $EMPTY_COLOUR;altes löschen
    $g_aPreShape3[$i][$j] = $EMPTY_COLOUR;altes löschen
    Next
    Next
    $iShape_1 = _RandomShape($g_aPreShape, $g_lblPreviewBoard, $iShape_2)
    $iShape_2 = _RandomShape($g_aPreShape2, $g_lblPreviewBoard2, $iShape_3)
    $iShape_3 = _RandomShape($g_aPreShape3, $g_lblPreviewBoard3)
    Else
    $iShape_HOLD = $hold
    $hold = -1
    EndIf

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

    EndFunc ;==>_HoldShape
    Func _NewShape()
    Local $i, $j

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

    For $i = 0 To 3
    For $j = 0 To 3
    $g_aGameShape[$i][$j] = $EMPTY_COLOUR
    Next
    Next

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

    $g_nShapeX = ($BOARD_WIDTH / 2) - 2
    $g_nShapeY = 0
    If Not $g_bGameStarted Then
    Local $__temp
    _RandomShape($g_aGameShape, $__temp, $iShape_1)
    Else
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aGameShape[$i][$j] = $g_aPreShape[$i][$j]
    Next
    Next
    If $g_aGameShape[1][0] = $TOWER_COLOUR Then $g_nShapeY = 0
    EndIf

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

    For $i = 0 To 3
    For $j = 0 To 3
    $g_aPreShape[$i][$j] = $EMPTY_COLOUR
    Next
    Next

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

    ; nächstes Teil anzeigen
    $iShape_1 = _RandomShape($g_aPreShape, $g_lblPreviewBoard, $iShape_2)
    ; übernächstes Teil anzeigen
    If $pieces >= 2 Then
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aPreShape2[$i][$j] = $EMPTY_COLOUR
    Next
    Next
    $iShape_2 = _RandomShape($g_aPreShape2, $g_lblPreviewBoard2, $iShape_3)
    EndIf
    ; über-übernächstes Teil anzeigen
    If $pieces >= 3 Then
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aPreShape3[$i][$j] = $EMPTY_COLOUR
    Next
    Next
    If $iShape_HOLD = -1 Then
    $iShape_3 = _RandomShape($g_aPreShape3, $g_lblPreviewBoard3)
    Else
    $iShape_3 = _RandomShape($g_aPreShape3, $g_lblPreviewBoard3, $iShape_HOLD)
    $iShape_HOLD = -1
    EndIf
    EndIf
    EndFunc ;==>_NewShape
    Func _RandomShape(ByRef $aArray, ByRef $aPreview, $nShape = -1);erzeugt neue Blöcke und schreibt sie in das preview Board, 3. parameter um blöcke von platz 3 auf 2, 1...
    ; Block Arten
    ; 1 2 3 4 5 6 7
    ; X
    ; X XX X XX XX XX XX
    ; X XX XXX XX XX X X
    ; X X X
    If $nShape = -1 Then $nShape = Random(1, 7, 1)
    Switch $nShape
    Case 1
    $aArray[1][0] = $TOWER_COLOUR
    $aArray[1][1] = $TOWER_COLOUR
    $aArray[1][2] = $TOWER_COLOUR
    $aArray[1][3] = $TOWER_COLOUR
    Case 2
    $aArray[1][1] = $BOX_COLOUR
    $aArray[1][2] = $BOX_COLOUR
    $aArray[2][1] = $BOX_COLOUR
    $aArray[2][2] = $BOX_COLOUR
    Case 3
    $aArray[1][1] = $PYRAMID_COLOUR
    $aArray[0][2] = $PYRAMID_COLOUR
    $aArray[1][2] = $PYRAMID_COLOUR
    $aArray[2][2] = $PYRAMID_COLOUR
    Case 4
    $aArray[0][1] = $LLEANER_COLOUR
    $aArray[1][1] = $LLEANER_COLOUR
    $aArray[1][2] = $LLEANER_COLOUR
    $aArray[2][2] = $LLEANER_COLOUR
    Case 5
    $aArray[2][1] = $RLEANER_COLOUR
    $aArray[1][1] = $RLEANER_COLOUR
    $aArray[1][2] = $RLEANER_COLOUR
    $aArray[0][2] = $RLEANER_COLOUR
    Case 6
    $aArray[1][1] = $LKNIGHT_COLOUR
    $aArray[2][1] = $LKNIGHT_COLOUR
    $aArray[2][2] = $LKNIGHT_COLOUR
    $aArray[2][3] = $LKNIGHT_COLOUR
    Case 7
    $aArray[2][1] = $RKNIGHT_COLOUR
    $aArray[1][1] = $RKNIGHT_COLOUR
    $aArray[1][2] = $RKNIGHT_COLOUR
    $aArray[1][3] = $RKNIGHT_COLOUR
    EndSwitch

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

    If IsArray($aPreview) Then
    For $i = 0 To 3
    For $j = 0 To 3
    If $aArray[$i][$j] == $EMPTY_COLOUR Then
    GUICtrlSetBkColor($aPreview[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Else
    GUICtrlSetBkColor($aPreview[$i][$j], $aArray[$i][$j])
    EndIf
    Next
    Next
    EndIf
    Return $nShape
    EndFunc ;==>_RandomShape

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

    Func _MoveShapeLeft()
    _MoveShape(-1, 0)
    EndFunc ;==>_MoveShapeLeft

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

    Func _MoveShapeRight()
    _MoveShape(1, 0)
    EndFunc ;==>_MoveShapeRight

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

    Func _MoveShapeDown()
    _MoveShape(0, 1)
    EndFunc ;==>_MoveShapeDown

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

    Func _DropShape()
    AdlibUnRegister()
    AdlibRegister("_MoveShapeDown", 1)
    SoundPlay("drop.mp3")
    EndFunc ;==>_DropShape

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

    Func _MoveShape($nMoveX, $nMoveY)
    Local $nCollision, $i, $j
    Local $bFilled, $x, $y
    Local $sScoreText, $nScore

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

    If _CollisionTest($nMoveX, $nMoveY) Then
    If $nMoveY = 1 Then
    If $g_nShapeY < 1 Then
    AdlibUnRegister()
    If $lost == False Then
    Global $lbLost = GUICtrlCreateLabel("Game over", 30, 180, 350, 78)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetFont(-1, 45, 400, 0, "@Arial Unicode MS")
    GUICtrlSetColor(-1, 0xFF0000)
    $lost = True
    EndIf
    GUICtrlSetState($g_btnStart, $GUI_ENABLE)
    HotKeySet("{LEFT}")
    HotKeySet("{RIGHT}")
    HotKeySet("{DOWN}")
    HotKeySet("{SPACE}")
    Return
    Else

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

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aGameShape[$i][$j] <> $EMPTY_COLOUR Then
    $g_aBoard[$g_nShapeX + $i][$g_nShapeY + $j] = $g_aGameShape[$i][$j]
    EndIf
    Next
    Next

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

    For $j = 0 To ($BOARD_HEIGHT - 1)
    $bFilled = True
    For $i = 0 To ($BOARD_WIDTH - 1)
    If $g_aBoard[$i][$j] = $EMPTY_COLOUR Then
    $bFilled = False
    ExitLoop
    EndIf
    Next
    If $bFilled Then
    SoundPlay("clear.mp3")
    $sScoreText = GUICtrlRead($g_lblScore)
    $points = 100
    $nScore = Number(StringRight($sScoreText, StringLen($sScoreText) - 7)) + $points

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

    If Mod($nScore, 50) = 0 Then
    $g_nGameTick -= 10
    EndIf
    GUICtrlSetData($g_lblScore, "SCORE: " & $nScore)
    For $x = 0 To ($BOARD_WIDTH - 1)
    For $y = $j To 1 Step -1
    $g_aBoard[$x][$y] = $g_aBoard[$x][$y - 1]
    Next
    Next
    _RedrawGameBoard()
    EndIf
    Next
    AdlibUnRegister()
    _NewShape()
    _DrawGameShape()
    AdlibRegister("_MoveShapeDown", $g_nGameTick)
    EndIf
    EndIf
    Else
    _DrawGameShape(True)
    If $nMoveX <> 0 Then $g_nShapeX += $nMoveX
    If $nMoveY <> 0 Then $g_nShapeY += $nMoveY
    _DrawGameShape()
    EndIf
    EndFunc ;==>_MoveShape

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

    Func _RotateShape()
    Local $i, $j, $aTempShape[4][4]

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

    For $i = 0 To 3
    For $j = 0 To 3
    $aTempShape[3 - $j][$i] = $g_aGameShape[$i][$j]
    Next
    Next

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

    For $i = 0 To 3
    For $j = 0 To 3
    If $aTempShape[$i][$j] <> $EMPTY_COLOUR Then
    If ($g_nShapeX + $i) < 0 Or ($g_nShapeX + $i) > ($BOARD_WIDTH - 1) Or _
    ($g_nShapeY + $j) < 0 Or ($g_nShapeY + $j) > ($BOARD_HEIGHT - 1) Then
    Return
    EndIf
    EndIf
    Next
    Next

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

    For $x = 0 To ($BOARD_WIDTH - 1)
    For $y = 0 To ($BOARD_HEIGHT - 1)
    If $x >= $g_nShapeX And $x < ($g_nShapeX + 4) Then
    If $y >= $g_nShapeY And $y < ($g_nShapeY + 4) Then
    If $g_aBoard[$x][$y] <> $EMPTY_COLOUR Then
    If $aTempShape[$x - $g_nShapeX][$y - $g_nShapeY] <> $EMPTY_COLOUR Then
    Return
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    Next
    _DrawGameShape(True)
    For $i = 0 To 3
    For $j = 0 To 3
    $g_aGameShape[$i][$j] = $aTempShape[$i][$j]
    Next
    Next
    _DrawGameShape()
    EndFunc ;==>_RotateShape

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

    Func _CollisionTest($nMoveX, $nMoveY)
    Local $nNewX = $g_nShapeX + $nMoveX
    Local $nNewY = $g_nShapeY + $nMoveY
    Local $i, $j, $x, $y
    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aGameShape[$i][$j] <> $EMPTY_COLOUR Then
    If ($nNewX + $i) < 0 Or ($nNewX + $i) > ($BOARD_WIDTH - 1) Or _
    ($nNewY + $j) < 0 Or ($nNewY + $j) > ($BOARD_HEIGHT - 1) Then
    Return True
    EndIf
    EndIf
    Next
    Next
    For $x = 0 To ($BOARD_WIDTH - 1)
    For $y = 0 To ($BOARD_HEIGHT - 1)
    If $x >= $nNewX And $x < ($nNewX + 4) Then
    If $y >= $nNewY And $y < ($nNewY + 4) Then
    If $g_aBoard[$x][$y] <> $EMPTY_COLOUR Then
    If $g_aGameShape[$x - $nNewX][$y - $nNewY] <> $EMPTY_COLOUR Then
    Return True
    EndIf
    EndIf
    EndIf
    EndIf
    Next
    Next
    Return False
    EndFunc ;==>_CollisionTest

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

    Func _DrawGameShape($bRemove = False)
    Local $i, $j

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

    For $i = 0 To 3
    For $j = 0 To 3
    If $g_aGameShape[$i][$j] <> $EMPTY_COLOUR Then
    If $bRemove Then
    GUICtrlSetBkColor($g_lblGameBoard[$g_nShapeX + $i][$g_nShapeY + $j], $GUI_BKCOLOR_TRANSPARENT)
    Else
    GUICtrlSetBkColor($g_lblGameBoard[$g_nShapeX + $i][$g_nShapeY + $j], $g_aGameShape[$i][$j])
    EndIf
    EndIf
    Next
    Next
    EndFunc ;==>_DrawGameShape

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

    Func _DrawGameBoard()
    Local $i, $j
    Local $x, $y

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

    $x = 20
    $y = 20
    For $i = 0 To $BOARD_WIDTH - 1
    For $j = 0 To $BOARD_HEIGHT - 1
    GUICtrlCreateLabel("", $x, $y, 25, 25, $SS_BLACKFRAME)
    $g_lblGameBoard[$i][$j] = GUICtrlCreateLabel("", $x + 1, $y + 1, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)

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

    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $y = $y + 26
    Next
    $x = $x + 26
    $y = 20
    Next
    EndFunc ;==>_DrawGameBoard

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

    Func _DrawPreviewBoard()
    Local $i, $j
    Local $x, $y
    $x = 340
    $y = 40
    GUICtrlCreateLabel("Next Shape:", $x, 20, 104, 18)
    For $i = 0 To 3
    For $j = 0 To 3
    GUICtrlCreateLabel("", $x, $y, 25, 25)
    GUICtrlSetColor(-1, 0x00FF00)
    $g_lblPreviewBoard[$i][$j] = GUICtrlCreateLabel("", $x, $y, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $g_lblPreviewBoard2[$i][$j] = GUICtrlCreateLabel("", $x, $y + 120, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $g_lblPreviewBoard3[$i][$j] = GUICtrlCreateLabel("", $x, $y + 240, 23, 23)
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $y = $y + 26
    Next
    $x = $x + 26
    $y = 40
    Next
    EndFunc ;==>_DrawPreviewBoard

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

    Func _RedrawGameBoard()
    Local $i, $j

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

    For $i = 0 To $BOARD_WIDTH - 1
    For $j = 0 To $BOARD_HEIGHT - 1
    If $g_aBoard[$i][$j] = $EMPTY_COLOUR Then
    GUICtrlSetBkColor($g_lblGameBoard[$i][$j], $GUI_BKCOLOR_TRANSPARENT)
    Else
    GUICtrlSetBkColor($g_lblGameBoard[$i][$j], $g_aBoard[$i][$j])
    EndIf
    Next
    Next
    EndFunc ;==>_RedrawGameBoard

    [/autoit]


    Ich würde dir raten das du dein code immer mit kommentaren versiehst, jetzt ist es eventuell noch verständlich ...und jetzt schon nicht mehr :D


    €:
    1. Der Fehler für die Anzeige der 3 nächsten blocks wahr das du sie immer neu zufällig erzeugt hast und sie nicht durchlaufen lassen hast ( immer nur der letzte Block wird neu generiert die anderen erhalten den Block der vorhergehenden position)
    2. Einen Block zurückhalten hab ich einmal so primitiv wie möglich eingefügt hoffentlich spricht der Code für sich ohne kommentare :D (der Hotkey wurde auf Numpad+ geändert)

  • programm beenden

    • bollen
    • 19. Februar 2014 um 18:08

    Du kannst eventuell mit

    [autoit]

    _WinAPI_FileInUse($sFile)

    [/autoit]

    prüfen ob die Sound Datei gerade verwendet wird. Jedoch kannst du so nicht überprüfen ob sie auch von dem zu schließenden Programm verwendet wird. Das Fremdprogramm kannst du dann mit

    [autoit]

    ProcessClose ( "process" )

    [/autoit]

    Beenden. So tolle Funktionen finden sich binnen Sekunden in der Hilfe 8)

  • Befehl gesucht - Script pausieren bis ein bestimmtes Control gefunden wird

    • bollen
    • 19. Februar 2014 um 17:56

    Eine einfache methode währe z.B.

    [autoit]

    $hControl=0
    While not $hControl
    $hControl=ControlGetText ( "title", "text", controlID )
    wend

    [/autoit]


    €:ungetestet

  • Arrays an verschiedenen stellen vergleichen

    • bollen
    • 13. Februar 2014 um 17:59
    Zitat

    Er meckert bei mir an dieser Stelle hier:
    If $aContent[$j] = $aContent[$j+1] Then
    Wo liegt der Fehler? Kann ich denn nicht einfach den Array an dieser Stelle mit der anderen vergleichen?


    er meckert bestimmt mit den worten
     Array variable has incorrect number of subscripts or subscript dimension range exceeded.
    in dieser fehlermeldung steh eigentlich schon alles was man wissen muss.
    Wenn du 10 Einträge in der Datei hast mit welchem Eintrag wird dann der letzte verglichen? zugriff auf fremden speicher==fehlermeldung ;)
    Außerdem gibt _FileReadtoArray() im ersten Element die Anzahl der Array Elemente aus was dir das Ubound erspart. Ansonsten kann ich nur raten das du errorhandling einfügst es ist zwar ein kleiner script, aber man sollte sich früh daran gewöhnen. :D
    Wenn du mehr als 3x den gleichen eintrag in der datei neu.txt hast wird der eintrag auch öfter als einmal in der ausgabe vorkommen _ArrayUnique() auf $aArrayTmp sollte den fehler beheben.

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <File.au3>

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

    Dim $sFilePath = "new.txt"
    Dim $aContent
    Dim $newfile = "double.txt"

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

    _FileReadToArray($sFilePath, $aContent)
    _ArraySort($aContent,0,1);das erste element auslassen da sonst die Anzahl der elemente flöten geht
    Dim $aArrayTmp[1]
    For $j = 1 To $aContent[0]-1;enthällt anzahl der Array elemente ; Anfang bei 1 da der Eintrag im Array mit index 0 ja die anzahl enthällt
    If $aContent[$j] = $aContent[$j+1] Then
    _ArrayAdd($aArrayTmp, $aContent[$j])
    EndIf
    ;$j = $j+1 <- Todsünde ;( $j wird automatisch nach jedem durchgang von For um Step (default=+1) erhöt oder verringert
    Next
    $aArrayTmp=_ArrayUnique($aArrayTmp, 1, Default,Default, 0)
    _FileWriteFromArray($newfile, $aArrayTmp)

    [/autoit]
  • Au3Recorder nimmt nicht auf

    • bollen
    • 10. Februar 2014 um 18:19

    Leider kann man das Programm nur mit Canon Drucker starten, die letzte möglichkeit die mir noch spontan einfällt währe SendMessage zu verwenden jedoch weis ich nicht ob Controlclick nicht auch sendmessage verwendet

    [autoit]

    #include <SendMessage.au3>
    #include <ButtonConstants.au3>
    $chwnd=0x0000000000000000
    $ret=_SendMessage($chwnd, $BM_CLICK)
    ConsoleWrite($ret&@CRLF)

    [/autoit]
  • _WinAPI_BitBlt und Ausgabe in Bild-Datei

    • bollen
    • 8. Februar 2014 um 12:09

    Das erste Beispiel (aus der Onlinehilfe) sollte allgemein verständlich sein. Wie PainTrain schon gesagt hat schau dir die Hilfe an, oder andere scripte welche die funktion enthalten es wird nicht immer jemand vorhanden sein der einem bei seinen problemen hilft. Hilfe zur selbsthilfe ist die beste Hilfe :thumbup:
    Online Hilfe:

    Spoiler anzeigen
    [autoit]


    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    $hGui = GUICreate("_WinAPI_BitBlt", 640, 480)
    GUISetState()
    $hWnd = _WinAPI_GetDesktopWindow()

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

    $hDC_Gui = _WinAPI_GetDC($hGui)
    $hDC_Desk = _WinAPI_GetDC($hWnd)

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

    _WinAPI_BitBlt($hDC_Gui, 0, 0, 640, 480, $hDC_Desk, 0, 0, $SRCINVERT)
    _WinAPI_BitBlt($hDC_Gui, 100, 100, 320, 240, $hDC_Desk, 0, 0, $SRCCOPY)

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

    While GUIGetMsg() <> -3
    Sleep(10)
    WEnd

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

    _WinAPI_ReleaseDC($hGui, $hDC_Gui)
    _WinAPI_ReleaseDC($hWnd, $hDC_Desk)

    [/autoit]


    2. Beispiel Englische Hilfe

    Spoiler anzeigen
    [autoit]

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

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

    Example()

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

    Func Example()
    AutoItSetOption("GUIOnEventMode", 1)

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

    _GDIPlus_Startup() ;initialize GDI+
    Local Const $iWidth = 600, $iHeight = 600, $iBgColor = 0x202020 ;$iBGColor format RRGGBB

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

    Global $hGUI = GUICreate("GDI+ example", $iWidth, $iHeight) ;create a test GUI
    GUISetBkColor($iBgColor, $hGUI) ;set GUI background color
    GUISetState(@SW_SHOW)

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

    ;create a faster buffered graphics frame set for smoother gfx object movements
    Local $hBitmap = _GDIPlus_BitmapCreateFromScan0($iWidth, $iHeight) ;create an empty bitmap
    Global $hHBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) ;convert GDI+ bitmap to GDI bitmap
    _GDIPlus_BitmapDispose($hBitmap) ;delete GDI+ bitmap because not needed anymore

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

    Global $hDC = _WinAPI_GetDC($hGUI) ;get device context from GUI
    Global $hDC_Backbuffer = _WinAPI_CreateCompatibleDC($hDC) ;creates a memory device context compatible with the specified device
    Global $DC_Obj = _WinAPI_SelectObject($hDC_Backbuffer, $hHBITMAP) ;selects an object into the specified device context
    Global $hGfxCtxt = _GDIPlus_GraphicsCreateFromHDC($hDC_Backbuffer) ;create a graphics object from a device context (DC)
    _GDIPlus_GraphicsSetSmoothingMode($hGfxCtxt, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;set smoothing mode (8 X 4 box filter)
    _GDIPlus_GraphicsSetPixelOffsetMode($hGfxCtxt, $GDIP_PIXELOFFSETMODE_HIGHQUALITY)

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

    Global $hPen = _GDIPlus_PenCreate() ;create a pen object

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    Local Const $iDeg = ACos(-1) / 180 ;ACos(-1) is nearly pi
    Local $iX_Center = $iWidth / 2, $iY_Center = $iHeight / 2, $iXPos, $iYPos, $iAngle = 0, $iRound = 0
    Local Const $iDots = 7, $iAngelDist = 360 / $iDots, $iRadius = 250
    Local $aCoordinates[$iDots][2] ;create an array to save coordinates of the x/y coordinates
    Do
    _GDIPlus_GraphicsClear($hGfxCtxt, 0xFF000000 + $iBgColor) ;clear bitmap with given color (AARRGGBB format)
    For $i = 0 To $iDots - 1
    $iXPos = $iX_Center + Cos($iAngle * $iDeg) * $iRadius ;calculate x position
    $iYPos = $iY_Center + Sin($iAngle * $iDeg) * $iRadius ;calculate y position
    $aCoordinates[$i][0] = $iXPos
    $aCoordinates[$i][1] = $iYPos
    _GDIPlus_PenSetColor($hPen, 0xFFFFFF00) ;set pen color for inner lines
    _GDIPlus_PenSetWidth($hPen, 2) ;set pen size for outer lines
    _GDIPlus_GraphicsDrawLine($hGfxCtxt, $aCoordinates[$i][0], $aCoordinates[$i][1], _ ;draw inner lines
    $aCoordinates[Mod(($i + $iDots / 2), $iDots)][0], $aCoordinates[Mod(($i + $iDots / 2), $iDots)][1], $hPen) ;draw to opposite side
    _GDIPlus_PenSetColor($hPen, 0xFFFF8000) ;set pen color
    _GDIPlus_PenSetWidth($hPen, 3) ;set pen size
    ;array of coordinates should be filled before first draw to screen
    If $i < $iDots - 1 Then _GDIPlus_GraphicsDrawLine($hGfxCtxt, $aCoordinates[$i][0], $aCoordinates[$i][1], $aCoordinates[$i + 1][0], $aCoordinates[$i + 1][1], $hPen) ;;draw outer lines
    $iAngle += $iAngelDist ;increase angle to next dot
    Next
    ;draw last line to 1st line
    _GDIPlus_GraphicsDrawLine($hGfxCtxt, $aCoordinates[$i - 1][0], $aCoordinates[$i - 1][1], $aCoordinates[0][0], $aCoordinates[0][1], $hPen)

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

    If $iRound Then _WinAPI_BitBlt($hDC, 0, 0, $iWidth, $iHeight, $hDC_Backbuffer, 0, 0, $SRCCOPY) ;copy backbuffer to screen (GUI)
    $iAngle -= 0.5 ;decrease overall angle
    $iRound += 1
    Until Not Sleep(30) ;Sleep() always returns 1 and Not 1 is 0 correspond to False

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

    _Exit()
    EndFunc ;==>Example

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

    Func _Exit() ;cleanup GDI+ resources
    _GDIPlus_PenDispose($hPen)
    _WinAPI_SelectObject($hDC_Backbuffer, $DC_Obj)
    _GDIPlus_GraphicsDispose($hGfxCtxt)
    _WinAPI_DeleteObject($hHBITMAP)
    _WinAPI_ReleaseDC($hGUI, $hDC)
    GUIDelete($hGUI)
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • Au3Recorder nimmt nicht auf

    • bollen
    • 8. Februar 2014 um 11:59

    Leider weis ich im moment nicht woher der Macro Generator kommt, eventuell wurde er mit Scite4Autoit mitgeliefert.
    €: anhang erneuert

    Dateien

    AutoItMacroGenerator.rar 224,5 kB – 375 Downloads
  • Au3Recorder nimmt nicht auf

    • bollen
    • 8. Februar 2014 um 00:04

    Wenn der Recorder nicht funktioniert könntest du auch den Macro Generator verwenden, welcher jedoch ControlClick befehle erzeugt. Mit dem solltest du eigentlich alles machen können was du auch mit dem recorder machen kannst, jedoch benütze ich beide nicht.
    €: den Macro Generator findest du unter \AutoIt3\SciTE\AutoItMacroGenerator\

  • Autoit Info Tool (Finder-Tool)

    • bollen
    • 7. Februar 2014 um 23:46
    Zitat von Schnuffel

    Hi Ilse,

    wenn es hart auf hart kommt und eine dirty Version auch reicht würde ich die ComboBox mit Send ansprechen und entsprechend mit SEND("{DOWN 3}") oder ähnlichem mit Tastatur Klicks durch die Combo navigieren


    Man kann das auch mit ControlSend machen das ist dann nicht so fehleranfällig. Wenn man den 3. Punkt auswählen will und die ComboBox auf dem ersten steht muss man natürlich nur 2x nach unten.

    [autoit]

    ControlSend(X ,X ,"[CLASS:ComboBox; INSTANCE:1]" ,"{DOWN 2}")

    [/autoit]
  • Loop m. Return beenden

    • bollen
    • 6. Februar 2014 um 19:29

    Ich hab mich einmal an einer lösung versucht. Im selben zug hab ich gleich noch ein paar sachen vereinfacht.
    €: die verwendung von Send() ist nicht zu entfehlen da das sehr fehleranfällig ist, oder was passiert wen man in ein anderes Fenster wächselt? 8o

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    $Form1_1 = GUICreate("Form1", 615, 484, 192, 124)
    $btnEnde = GUICtrlCreateButton("beenden", 496, 416, 75, 25)
    GUISetFont(16, 400, 0, "MS Sans Serif", $Form1_1);ersetzt die vielen GuiCtrlSetFont
    $txtJahr = GUICtrlCreateInput("2014", 128, 48, 49, 32,$ES_NUMBER);es number evtl noch max länge auf 4 zeichen
    $txtOrdner = GUICtrlCreateInput("", 128, 112, 441, 32)
    $txtDatei = GUICtrlCreateInput("", 128, 168, 441, 32)
    $txtAdresse = GUICtrlCreateInput("", 128, 224, 441, 32)
    $txtKopie = GUICtrlCreateInput("", 128, 352, 441, 32)
    $Label1 = GUICtrlCreateLabel("Jahr:", 72, 48, 45, 28)
    $lblOrdner = GUICtrlCreateLabel("Ordner", 48, 112, 64, 28, $SS_RIGHT)
    $lblDatei = GUICtrlCreateLabel("Datei", 69, 167, 46, 28, $SS_RIGHT)
    $lblAdresse = GUICtrlCreateLabel("Adresse", 38, 232, 74, 28, $SS_RIGHT)
    $lblKopie = GUICtrlCreateLabel("Kopie", 56, 354, 53, 28, $SS_RIGHT)
    $btnStart = GUICtrlCreateButton("Start", 496, 40, 75, 41)
    GUISetState(@SW_SHOW)
    Global $bFreigabe, $aControl[6] = [1, $txtJahr, $txtOrdner, $txtDatei, $txtAdresse, $txtKopie];array mit handels und index(element 0) füllen
    _NextItem();erstes selektieren
    AdlibRegister("_NextItem", 5000);alle 5s _NextItem Funktion aufrufen

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

    While 1
    If _IsPressed("0D") Then $bFreigabe=1;wenn Return gedrückt wurde freigabe erteilen
    If $bFreigabe=1 Then;wenn return gedrückt wurde
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btnEnde
    Exit
    Case $btnStart
    Eintrag()
    EndSwitch
    Else
    Sleep(100)
    EndIf
    WEnd

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

    Func _NextItem()
    GUICtrlSetState($aControl[$aControl[0]], $GUI_FOCUS);nextes item fokusieren
    $aControl[0] += 1
    If $aControl[0] = UBound($aControl) Then $aControl[0] = 1;wenn der index auf dem letzten array element steht wider auf 1 setzen
    EndFunc ;==>_NextItem
    Func Eintrag()

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

    ;Code....

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

    ;fertig...
    ;Alle Felder leeren, Loop läuft weiter
    $bFreigabe=0
    EndFunc ;==>Eintrag

    [/autoit]
  • Suche Workaround RegExp Repeating Character Pattern Limit

    • bollen
    • 30. Januar 2014 um 19:59

    in der vollständigen beschreibung der PCRE Pattern steht was den fehlschlag erklärt wen die 2 zahl größer ist.

    Zitat

    The general repetition quantifier specifies a minimum and maximum number of permitted matches, by giving the two numbers in curly brackets (braces), separated by a comma. The numbers must be less than 65536, and the first must be less than or equal to the second


    ich würde die Maximalanzahl der Zeichen so umgehen das ich einfach 2x den Ausdruck hintereinander verwende. Ceiling und Floor müssten die .5 bei ungeraden Zahlen beheben. (ungetestet)

    [autoit]

    StringRegExp($string ,"\[.{1,"&Ceiling($MaxLen/2)&"}.{1,"&Floor($MaxLen/2)&"}\],??",3)

    [/autoit]


    natürlich

  • Deutsche Hilfe auf 3.3.10.2 updaten - mitmachen

    • bollen
    • 17. Januar 2014 um 19:13

    Hier sind auch noch ein paar übersetzte Files, ich hoffe das alles so passt. Wenn ich nocheinmal Zeit finde übersetze ich nocheinmal ein paar.

    Dateien

    _GDIPlus_BitmapUnlockBits - bis - _GDIPlus_BrushSetSolidColor.rar 2,65 kB – 412 Downloads _GDIPlus_CustomLineCapDispose - bis - _GDIPlus_DrawImagePoints.rar 5,04 kB – 457 Downloads _GDIPlus_GraphicsClear - bis - _GDIPlus_GraphicsDrawClosedCurve.rar 6,1 kB – 459 Downloads _GDIPlus_GraphicsDrawCurve - bis - _GDIPlus_GraphicsDrawPolygon.rar 7,23 kB – 418 Downloads
  • Hotkeyset mit Unicode/ASCII-Nummern

    • bollen
    • 15. Januar 2014 um 18:27
    Zitat von name22

    Die Funktion richtet sich nur nach physisch vorhandenen Tasten. Du müsstest also die Kombination (z.B. Strg+Alt+Q für @) angeben.


    Nicht unbedingt, bei Tasten(kombinationen) die nicht über ALT+Nummernblock eingegeben werden kann auch direkt das Endergebnis eingetragen werden z.B. bei @;µ;~;&;.....

    [autoit]

    HotKeySet("@" ,"test")
    While 1
    Sleep(100)
    WEnd
    Func test()
    MsgBox(0,"",@HotKeyPressed&" hat mich aufgerufen!")
    Exit
    EndFunc

    [/autoit]
  • if statement vereinfachen

    • bollen
    • 11. Januar 2014 um 20:19

    wenn bei der for Schleife kein Step x angegeben ist wird immer um eins inkrementiert
    solche informationen findest du übrigens auch in der Hilfe von AutoIt

  • Files in verschiedenen Ordnern mit einem bestimmten Datum auslesen, moven und Ordnerstruktur herstellen

    • bollen
    • 31. Oktober 2013 um 18:23

    In der neuen Autoit Beta v3.3.9.21 hat es eine sehr nützliche funktion mit der so etwas einfach umzusetzen ist ich hab mal ein kleines beispiel gemacht
    aber Achtung man kann damit schnell seinen Speicher zumüllen

    die Funktion macht im prinzip das gleiche wie deine Funktion aber sie sucht nur nach Dateien und nicht nach Ordnern da die ja im Dateipfad "stecken"
    filecopy erstellt dann das verzeichnis neu(an anderer stelle) wen es nicht existiert.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    $datum=InputBox("Datum" ,"Format JJJJMMTTHHMMSS"&@CRLF&"Dateien die neuer als XXXX sind werden kopiert" ,"20130130000000")
    $foldersource=FileSelectFolder("Auswahl source" ,@DesktopDir);quelle
    $folderdest=FileSelectFolder("Auswahl destination" ,@DesktopDir);ziel
    if MsgBox(52,"ACHTUNG" ,"ACHTUNG!! es können große Datenmengen bewegt werden"&@CRLF&"Weiter?")=7 Then Exit
    $filearray=_FileListToArrayRec($foldersource ,"*" ,1 ,1 ,0 ,1);AutoIt Beta funktion V3.3.9.21
    For $i1=1 to $filearray[0];schleife index 0 enthält anzahl
    If FileGetTime($filearray[$i1] ,1 ,1)>$datum then;wenn File datum Größer gesuchtem datum
    $copy=FileCopy($foldersource&""&$filearray[$i1] ,$folderdest&""&$filearray[$i1],8)
    ;erstellt verzeichnis fals nicht vorhanden und kopiert die Dateien
    If $copy=0 Then ExitLoop;falls ein fehler auftritt
    EndIf
    Next

    [/autoit]
  • Glücksrad! via GDI+?

    • bollen
    • 23. Oktober 2013 um 19:02

    du kannst auch nur die Farben rotieren lassen. Ich hab ein beispiel angehängt, aber erst schauen wenn du selber eine Lösung hast!! sonst hat es ja keinen zweck ;)

    Spoiler anzeigen
    [autoit]

    #include <Gdip.au3>
    #include <GUIConstantsEx.au3>
    Global $rotate=0 ,$segmente=20 ,$farbe[$segmente] ,$zaehler=0
    $form1=GUICreate("" ,500 ,500)
    GUISetState(@SW_SHOW)
    _GDIPlus_Startup()
    $hgraphics=_GDIPlus_GraphicsCreateFromHWND($form1);Grafik Objekt von dem Fenster erstellen
    AdlibRegister("_rotate" ,500);alle 500 ms Funktion _rotate() aufrufen
    For $i0=0 to $segmente-1
    $farbe[$i0]=_GDIPlus_BrushCreateSolid(Random(0xFF000000 ,0xFFFFFFFF));Farben für die einzelnen segmente erzeugen
    Next

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _Exit()
    Case $GUI_EVENT_PRIMARYDOWN
    $rotate=BitXOR($rotate ,1);toggle $rotate bei jedem maus klick
    EndSwitch
    WEnd

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

    Func _rotate()
    If $rotate Then
    $angle=0;immer startposition auf 0 setzen
    $zaehler+=1;zähler und somit startfarbe um eins erhöhen gleichzeitig anzeige welches segment oben steht.
    For $i1=0 to $segmente-1
    $zaehler+=1
    _GDIPlus_GraphicsfillPie($hgraphics ,100 ,100 ,300 ,300 ,$angle ,360/$segmente ,$farbe[Mod($zaehler ,$segmente)]);einzelne "Kuchenstücke" zeichenen
    $angle+=360/$segmente;anfangswinkel um segmentwinkel inkrementieren
    Next
    EndIf
    EndFunc

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

    Func _exit();Alle erzeugten elemente Freigeben und beenden
    For $1=0 to $segmente-1
    _GDIPlus_BrushDispose($farbe[$1])
    Next
    _GDIPlus_GraphicsDispose($hgraphics)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

    [/autoit]
  • Timestamp der neuesten Datei auf einem FTP-Server auslesen und eMail senden, wenn diese älter als 5 Minuten ist.

    • bollen
    • 2. September 2013 um 17:50

    Du kannst mit

    [autoit]

    _FTP_FindFileFirst($l_FTPSession, $s_RemotePath, ByRef $h_Handle [, $l_Flags = 0 [, $l_Context = 0]])

    [/autoit]

    und

    [autoit]

    _FTP_FindFileNext($h_Handle)

    [/autoit]

    die Erstellzeit Lo und Erstellzeit Hi jeder Datei auslesen. Das Lo und Hi Dword kannst du mit

    [autoit]

    _FTP_FileTimeLoHiToStr($LoDWORD, $HiDWORD [, $bFmt = 0])

    [/autoit]

    zu einer verständlichen Zeit konvertieren. Danach aber

    [autoit]

    _FTP_FindFileClose($h_Handle)

    [/autoit]

    nicht vergessen. Das mit der E-mail kann ich dir leider nicht sagen da ich es selber nicht weis ?(

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™