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

Beiträge von Nestos

  • Notenmanager, Schulnoten verwalten, Schnitte ausrechnen und mehr...Version 3.20

    • Nestos
    • 7. September 2009 um 10:52

    Mich wunderts echt, dass du den Code selber noch lesen kannst. :P

    Aber gute Arbeit gefällt mir!

    PS: Wenn du nichts dagegen hast, würde ich deinen Code mal überarbeiten. :)

    MfG,
    H2112

  • *.icl Dateien erstellen?

    • Nestos
    • 16. August 2009 um 19:28

    Tach alle :)

    Ich hab mal eine Frage:
    Wie erstellt man *.icl Dateien und gibt es dafür bestimmte Programme (möglichst FreeWare).

    Ich dank euch schonmal alle für die Antworten.

    MfG,
    H2112

  • Flackern beim Überzeichnen von GDI+ unterbinden?

    • Nestos
    • 14. August 2009 um 15:28

    Das hat mir auch nicht wirklich geholfen. :/ Das flackern ist nach wie vor noch da...

    Ich hab das Skript mal im 1. Post hinzugefügt.

  • Flackern beim Überzeichnen von GDI+ unterbinden?

    • Nestos
    • 14. August 2009 um 15:13

    Moin alle :)

    Ich hab ne Frage:
    Gibt es irgendwie eine Möglichkeit, das Flackern beim überzeichnen von GDI+ Graphiken zu unterbinden?

    In meinem Fall liegen zwei Graphiken, die teilweiße transparente PNGs enthalten direkt übereinander und diese werden immer wieder neu gezeichnet. Nur da Flackert halt das ganze ziemlich. :/

    Danke schonmal im Vorraus. :)

    Edit
    Hier das Skript:

    Skript
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #Include <WinAPI.au3>
    #include <Array.au3>
    #include <Misc.au3>

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

    _GDIPlus_Startup()

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

    Global $MoveX = 0
    Global $MoveY = 0
    Global $hImage = _GDIPlus_ImageLoadFromFile(@DesktopDir&"\DieWelt.png")
    Global $hFigurImage = _GDIPlus_ImageLoadFromFile(@DesktopDir&"\Anathema-Priestess.png")
    Global $MapWidth = 22
    Global $MapHeigth = 15
    Global $hGraphic1, $hGUI
    Global $MainFigurPoxX = 10
    Global $MainFigurPoxY = 8

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

    $hGUI = GUICreate("Map1", 324, 244, -1, -1, 0x14CA0000, 0x00050100)
    GUISetBkColor(0x000000, $hGUI)
    GUISetState()

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

    $hGraphic1 = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($hGUI)

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

    _DrawMultiMap(1 - $MoveX, 1, 20, 15, 1, 6)
    _DrawMainFigure($MainFigurPoxX, $MainFigurPoxY)

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

    Do
    _Moveing()
    Sleep(200)
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    _GDIPlus_GraphicsDispose($hGraphic1)
    _GDIPlus_GraphicsDispose($hGraphic2)
    _GDIPlus_ImageDispose($hImage)

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

    _GDIPlus_Shutdown()

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

    Func _DrawMap($Position1, $Position2, $Pic1, $Pic2)
    ;~ DllCall($ghGDIPDll, "int", "GdipDrawImageRectRectI", "hwnd", $hGraphic1, "hwnd", $hImage, "int", 2 + ($Position1 - 1) * 15 + ($Position1 - 1), "int", _
    ;~ 2 + ($Position2 - 1) * 15 + ($Position2 - 1), "int", 16, "int", 16, "int", ($Pic1 - 1) * 16, "int", ($Pic2 - 1) * 16, "int", 16, "int", _
    ;~ 16, "int", 2, "int", 0, "int", 0, "int", 0)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic1, $hImage, ($Pic1 - 1) * 16, ($Pic2 - 1) * 16, 16, 16, 2 + ($Position1 - 1) * 15 + ($Position1 - 1), 2 + ($Position2 - 1) * 15 + ($Position2 - 1), 16, 16)
    EndFunc

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

    Func _DrawMultiMap($Position1, $Position2, $Width, $Heigth, $Pic1, $Pic2)
    For $i = 0 To $Width Step + 1
    For $j = 0 To $Heigth Step + 1
    _DrawMap($Position1 + $i - 1, $Position2 + $j - 1, $Pic1, $Pic2)
    Next
    Next
    EndFunc

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

    Func _Moveing()
    Select
    Case _IsPressed(27) = 1
    _Right()
    Case _IsPressed(25) = 1
    _Left()
    EndSelect
    EndFunc

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

    Func _Right()
    If $MainFigurPoxX < 10 Then
    $MainFigurPoxX += 1
    ElseIf $MoveX <= $MapWidth - 21 Then
    $MoveX += 1
    Else
    If $MainFigurPoxX < 20 Then
    $MainFigurPoxX += 1
    EndIf
    EndIf
    _WinAPI_RedrawWindow_($hGUI)
    _DrawMultiMap(1 - $MoveX, 1, 20, 15, 1, 6)
    _DrawMainFigure($MainFigurPoxX, $MainFigurPoxY)
    EndFunc

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

    Func _Left()
    If $MainFigurPoxX > 10 Then
    $MainFigurPoxX -= 1
    ElseIf Not $MoveX = 0 Then
    $MoveX -= 1
    Else
    If $MainFigurPoxX >1 Then $MainFigurPoxX -= 1
    EndIf
    _WinAPI_RedrawWindow_($hGUI)
    _DrawMultiMap(1 - $MoveX, 1, 20, 15, 1, 6)
    _DrawMainFigure($MainFigurPoxX, $MainFigurPoxY)
    EndFunc

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

    Func _WinAPI_RedrawWindow_($hWnd)
    DllCall("user32.dll", "int", "RedrawWindow", "hwnd", $hWnd, "ptr", 0, "int", 0, "int", 5)
    EndFunc ;==>_WinAPI_RedrawWindow

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

    Func _DrawMainFigure($Position1, $Position2)
    ;~ DllCall($ghGDIPDll, "int", "GdipDrawImageRectRectI", "hwnd", $hGraphic2, "hwnd", $hFigurImage, "int", ($Position1 -1) * 16 - 2, "int", _
    ;~ ($Position2 - 1) * 16, "int", 24, "int", 32, "int", 24, "int", 64, "int", 24, "int", _
    ;~ 32, "int", 2, "int", 0, "int", 0, "int", 0)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic2, $hFigurImage, 24, 64, 24, 32, ($Position1 -1) * 16 - 2, ($Position2 - 1) * 16, 24, 32)
    EndFunc

    [/autoit]
  • Scriptfehler in Funktion, Globale Variable wird als nicht deklariert bezeichnet?

    • Nestos
    • 13. August 2009 um 18:33

    Schönen Tag allen (Auch wenns regnet) :)

    Ich hab diesmal ein komisches Problem:
    Ich habe eine Variable ($MoveX) Global deklariert. Nun bekomme ich aber immer einen Error, wenn ich diese Variable in einer Funktion (_Left()) aufrufe. Warum?

    Hier ist das Skript:

    Skript
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #Include <WinAPI.au3>
    #include <Array.au3>
    #include <Misc.au3>

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

    AdlibEnable("_Right", 10)
    AdlibEnable("_Left", 10)

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

    _GDIPlus_Startup()

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

    Global $MoveX = 0
    Global $MoveY = 0
    Global $hImage = _GDIPlus_ImageLoadFromFile(@DesktopDir&"\DieWelt.png")
    Global $MapWidth = 40
    Global $MapHeigth = 15
    Global $hGraphic, $hGUI

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

    $hGUI = GUICreate("Map1", 324, 244, -1, -1, 0x14CA0000, 0x00050100)
    GUISetBkColor(0x000000, $hGUI)
    GUISetState()

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)

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

    ;~ $Widht = 0
    ;~ $High = 0

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

    Do
    _DrawMap(1 - $MoveX, 1, 1, 6)
    _DrawMap(2 - $MoveX, 1, 3, 6)
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)

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

    _GDIPlus_Shutdown()

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

    Func _DrawMap($Position1, $Position2, $Pic1, $Pic2)
    _GDIPlus_GraphicsDrawImageRectRect($hGraphic, $hImage, ($Pic1 - 1) * 16, ($Pic2 - 1) * 16, 16, 16, 2 + ($Position1 - 1) * 15 + ($Position1 - 1), 2 + ($Position2 - 1) * 15 + ($Position2 - 1), 16, 16)
    EndFunc

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

    Func _Right()
    If $MoveX >= 20 Then
    If _IsPressed(27) Then
    $MoveX += 1
    EndIf
    EndIf
    EndFunc

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

    Func _Left()
    If $MoveX <= $MapWidth Then
    If _IsPressed(25) Then
    $MoveX -= 1
    EndIf
    EndIf
    EndFunc

    [/autoit]
    Error Meldung

    C:\Dokumente und Einstellungen\XXX\Desktop\Scripten\Map1.au3 (52) : ==> Variable used without being declared.:
    If $MoveX <= $MapWidth Then
    If ^ ERROR

    Edit: Fehler gefunden (SEHR DUMM VON MIR! >.<)
    AdlibEnable war falsch gesetzt.

  • Bestimmte Farbe in einem Bild transparent machen

    • Nestos
    • 11. August 2009 um 12:17

    Danke, du hast mein Leben gerettet. :D

    Dafür bekommst du nen fetten Eintrag in die Credits. ^^

  • Programm

    • Nestos
    • 10. August 2009 um 15:51

    Ich hab dir eine PN geschrieben. :D

    Dort findest du sicher Hilfe. :)

  • Bestimmte Farbe in einem Bild transparent machen

    • Nestos
    • 10. August 2009 um 15:31

    Ich habs ja auch mit der transparents versucht.
    Da wird der transparente Fleck aufeinmal blau. :(

    Ergebnis ist im Anhang...

    Und irgendwie muss das ja gehen...

    Edit: 100 Beiträge! xD

    Edit2:
    Im Englischem Forum hab ich das gefunden:
    http://www.autoitscript.com/forum/index.php?showtopic=89702

    :/

  • Bestimmte Farbe in einem Bild transparent machen

    • Nestos
    • 10. August 2009 um 14:57

    Ich habs jetzt auch mit Child Fenstern und _WinApiSetLayerWindowAttributes() versucht.
    Jetzt ist zwar der Hintergrund transparent die roten Teile im Bild aber nicht. :/

    Jetztiger Code:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #Include <WinAPI.au3>

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

    _GDIPlus_Startup()

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

    Global $hImage = _GDIPlus_BitmapCreateFromFile("DieWelt.png")
    Global $hBitmapWidht = _GDIPlus_ImageGetWidth($hImage), $hBitmapHeight = _GDIPlus_ImageGetHeight($hImage), $PicZahl = $hBitmapWidht / 16 * $hBitmapHeight / 16
    Global $hBitmap, $hGraphic, $hGUI, $hImage, $hSplit[$PicZahl]
    Global $Widht = 0, $High = 0

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

    $hGUI = GUICreate("RPG Maker", 580 + $hBitmapWidht / 16, 356 + $hBitmapHeight / 16, @DesktopWidth / 2 - (580 + $hBitmapWidht / 16) / 2, @DesktopHeight / 2 - (356 + $hBitmapHeight / 16) / 2)
    GUISetBkColor(0xFF00FF, $hGUI)
    GUISetState()

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

    $Child1 = GUICreate("Child1", 580 + $hBitmapWidht / 16, 356 + $hBitmapHeight / 16, @DesktopWidth / 2 - (580 + $hBitmapWidht / 16) / 2 + 3, @DesktopHeight / 2 - (356 + $hBitmapHeight / 16) / 2 + 28, 0x80000000, BitOr(0x00080000 , 0x00000080), $hGUI)
    GUISetState()
    GUISetBkColor(0xFF0000, $Child1)

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

    $Child2 = GUICreate("Child2", 580 + $hBitmapWidht / 16, 356 + $hBitmapHeight / 16, @DesktopWidth / 2 - (580 + $hBitmapWidht / 16) / 2 + 3, @DesktopHeight / 2 - (356 + $hBitmapHeight / 16) / 2 + 28, 0x80000000, BitOr(0x00080000 , 0x00000080), $hGUI)
    GUISetState()
    GUISetBkColor(0xFF0000, $Child2)

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

    $hGraphic1 = _GDIPlus_GraphicsCreateFromHWND($Child1)
    $hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($Child2)

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

    For $i = 0 To $PicZahl -1 Step + 1
    If $Widht <> $hBitmapWidht Then
    $hSplit[$i] = _GDIPlus_BitmapCloneArea($hImage, $Widht, $High, 16, 16)
    $Widht = $Widht + 16
    Else
    $Widht = 0
    $High = $High + 16
    $i = $i - 1
    EndIf
    Next

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

    $Widht = 0
    $High = 0

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

    Do
    _Multi_WinAPI_SetLayeredWindowAttributes()
    _DrawMultiMap(0, 0, 10, 20, 190, 1)
    _DrawMap(10, 9, 348, 2)
    _DrawMap(10, 10, 378, 2)
    _DrawMap(10, 11, 408, 2)
    _DrawMap(10, 12, 438, 2)
    _MoveChilds()
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    _GDIPlus_Shutdown()

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

    Func _DrawMultiMap($XPos, $YPos, $MapHigh, $MapWidth, $Pic, $Layer)
    For $i = $XPos To $MapHigh + $XPos Step + 1
    For $j = $YPos To $MapWidth + $YPos Step + 1
    _DrawMap($i, $j, $Pic, 1)
    Next
    Next
    EndFunc

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

    Func _DrawMap($Position1, $Position2, $Pic, $Layer)
    If $Layer = 1 Then _GDIPlus_GraphicsDrawImage($hGraphic1, $hSplit[$Pic], $Position1 * 16, $Position2 * 16)
    If $Layer = 2 Then _GDIPlus_GraphicsDrawImage($hGraphic2, $hSplit[$Pic], $Position1 * 16, $Position2 * 16)
    EndFunc

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

    Func _MoveChilds()
    Local $hGUIPos1, $hGUIPos2
    $hGUIPos1 = WinGetPos("RPG Maker")
    $hGUIPos2 = WinGetPos("Child1")
    If $hGUIPos1[0] <> $hGUIPos2[0] Or $hGUIPos1[1] <> $hGUIPos2[1] Then
    WinMove("Child1", "", $hGUIPos1[0] + 3, $hGUIPos1[1] + 28)
    WinMove("Child2", "", $hGUIPos1[0] + 3, $hGUIPos1[1] + 28)
    EndIf
    EndFunc

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

    Func _WinAPI_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $dwFlages = 0x03, $isColorRef = False)
    ;progandy
    If $dwFlages = Default Or $dwFlages = "" Or $dwFlages < 0 Then $dwFlages = 0x03
    If Not $isColorRef Then
    $i_transcolor = Hex(String($i_transcolor), 6)
    $i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
    EndIf
    Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $dwFlages)
    Select
    Case @error
    Return SetError(@error, 0, 0)
    Case $Ret[0] = 0
    Return SetError(4, _WinAPI_GetLastError(), 0)
    Case Else
    Return 1
    EndSelect
    EndFunc ;==>_WinAPI_SetLayeredWindowAttributes

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

    Func _Multi_WinAPI_SetLayeredWindowAttributes()
    _WinAPI_SetLayeredWindowAttributes($Child1, 0xFF0000)
    _WinAPI_SetLayeredWindowAttributes($Child2, 0xFF0000)
    EndFunc

    [/autoit]
  • Bestimmte Farbe in einem Bild transparent machen

    • Nestos
    • 9. August 2009 um 22:52

    Ich hab diese beiden Funktionen gefunden:

    Spoiler anzeigen
    [autoit]

    ;================Macht den Hintergrund Transparent, überall wo die farbe des pixels 1,1 ist===============
    Func ImageMakeTransparentBkGnd($hImage2, $GuiSizeX, $GuiSizeY)
    Local $hBitmap1, $Reslt, $width, $height, $stride, $format, $Scan0, $v_Buffer, $v_Value, $iColor

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

    $hBitmap1 = _GDIPlus_BitmapCloneArea($hImage2, 0, 0, $GuiSizeX, $GuiSizeY, $GDIP_PXF32ARGB)

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

    $iColor = GDIPlus_BitmapGetPixel($hBitmap1, 1, 1) ; Transparent color

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

    $Reslt = _GDIPlus_BitmapLockBits($hBitmap1, 0, 0, $GuiSizeX, $GuiSizeY, BitOR($GDIP_ILMREAD, $GDIP_ILMWRITE), $GDIP_PXF32ARGB)

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

    ;Get the returned values of _GDIPlus_BitmapLockBits ()
    $width = DllStructGetData ($Reslt, "width")
    $height = DllStructGetData($Reslt, "height")
    $stride = DllStructGetData($Reslt, "stride")
    $format = DllStructGetData($Reslt, "format")
    $Scan0 = DllStructGetData ($Reslt, "Scan0")

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

    For $i = 0 To $GuiSizeX - 1
    For $j = 0 To $GuiSizeY - 1
    $v_Buffer = DllStructCreate("dword", $Scan0 + ($j * $stride) + ($i * 4))
    $v_Value = DllStructGetData($v_Buffer, 1)
    If Hex($v_Value, 6) = Hex($iColor, 6) Then
    DllStructSetData($v_Buffer, 1, Hex($iColor, 6))
    EndIf
    Next
    Next

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

    _GDIPlus_BitmapUnlockBits($hBitmap1, $Reslt)

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

    Return $hBitmap1
    EndFunc ;==>ImageMakeTransparentBkGnd

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

    ;The GetPixel method gets the color of a specified pixel in this bitmap.
    Func GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY)
    Local $tArgb, $pArgb, $aRet
    $tArgb = DllStructCreate("dword Argb")
    $pArgb = DllStructGetPtr($tArgb)
    $aRet = DllCall($ghGDIPDll, "int", "GdipBitmapGetPixel", "hwnd", $hBitmap, "int", $iX, "int", $iY, "ptr", $pArgb)
    Return "0x" & Hex(DllStructGetData($tArgb, "Argb"))
    EndFunc ;==>GDIPlus_BitmapGetPixel

    [/autoit]

    Nur ich verstehe nich wirklich, was sie machen. :/

    Könnte mir da vieleicht wer auf die Sprünge helfen? :D

  • Bestimmte Farbe in einem Bild transparent machen

    • Nestos
    • 9. August 2009 um 22:40

    Die GUI selbst soll ja nicht transparent sein. :)
    Und durch deine Methode werden die Bilder viel zu groß. ;P Und es sollen ja über 50 von diesen Bildern mitgepackt werden. Das wäre zu große Platzversschändung...

    Und das mit rosa, kann ich nicht bestätigen. :/
    Die Farbe bleibt (wenn sie reines rosa ist) rosa. Vll ist es aber auch nicht der korrekte Farbcode...

  • Bestimmte Farbe in einem Bild transparent machen

    • Nestos
    • 9. August 2009 um 18:32

    Ich bins wieder :P

    Und diesmal mit folgendem Problem:
    Ich hab ein Bild (Anhang), indem manche Teile rot sind (0xFF0000).
    Die roten Teile will ich transparent erscheinen lassen.
    Das Bild wird mit GDi+ gezeichnet (also eine Graphik).

    Mit der SuFu hab ich nicht wirklich was brauchbares gefunden. :(

    Ich Danke euch schonmal für die Antworten. :)

    MfG
    H2112

    PS: Script:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #Include <WinAPI.au3>
    #include <Array.au3>

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

    _GDIPlus_Startup()

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

    Global $hImage = _GDIPlus_BitmapCreateFromFile("DieWelt.png")
    Global $hBitmapWidht = _GDIPlus_ImageGetWidth($hImage), $hBitmapHeight = _GDIPlus_ImageGetHeight($hImage), $PicZahl = $hBitmapWidht / 16 * $hBitmapHeight / 16
    Global $hBitmap, $hGraphic, $hGUI, $hImage, $hSplit[$PicZahl]

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

    Global $Widht = 0, $High = 0

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

    $hGUI = GUICreate("Bildteiler", 580 + $hBitmapWidht / 16, 356 + $hBitmapHeight / 16)
    GUISetBkColor(0x00FF00, $hGUI)
    GUISetState()

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

    For $i = 0 To $PicZahl -1 Step + 1
    If $Widht <> $hBitmapWidht Then
    $hSplit[$i] = _GDIPlus_BitmapCloneArea($hImage, $Widht, $High, 16, 16)
    $Widht = $Widht + 16
    Else
    $Widht = 0
    $High = $High + 16
    $i = $i - 1
    EndIf
    Next

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

    $Widht = 0
    $High = 0

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    For $i = 0 To $PicZahl -1 Step + 1
    If $Widht <> $hBitmapWidht + $hBitmapWidht / 16 Then
    _GDIPlus_GraphicsDrawImage($hGraphic, $hSplit[$i], 50 + $Widht, 50 + $High)
    $Widht = $Widht + 16 + 1
    Else
    $Widht = 0
    $High = $High + 16 + 1
    $i = $i - 1
    EndIf
    Next

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

    $Widht = 0
    $High = 0

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

    Do
    For $i = 0 To $PicZahl -1 Step + 1
    If $Widht <> $hBitmapWidht + $hBitmapWidht / 16 Then
    _GDIPlus_GraphicsDrawImage($hGraphic, $hSplit[$i], 50 + $Widht, 50 + $High)
    $Widht = $Widht + 16 + 1
    Else
    $Widht = 0
    $High = $High + 16 + 1
    $i = $i - 1
    EndIf
    Next
    $Widht = 0
    $High = 0
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _WinAPI_DeleteObject($hImage)

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

    _GDIPlus_Shutdown()

    [/autoit]
  • Bild teilen

    • Nestos
    • 9. August 2009 um 15:01

    Ich hab mir auch schon gedacht, dass das mit GDI+ funktioniert. :)

    Könntest du mir bitte irgendeinen GDI+ Befehl als Ansatz geben?

    Edit:
    So hab jetzt die Funktion

    [autoit]

    _GDIPlus_BitmapCloneArea()

    [/autoit]

    gefunden.

    Nur versteh ich nicht wirklich, wie ich das anstellen soll, ohne eine neue Datei zu erstellen. :/


    Edit2:
    Habs jetzt so probiert:

    Spoiler anzeigen

    Lösung Erster Post

    Was mache ich falsch?

    Edit3:
    Habs gelöst (Erster Post)

  • Bild teilen

    • Nestos
    • 9. August 2009 um 14:24

    Tach alle zusammen :)

    Ich hab folgendes Problem:
    Ich hab ein Bild (Anhang), dass aus mehreren Teilen besteht. Diese Teile will ich einzeln darstellen, also das Bild aufteilen.

    Beispiel:
    Das Bild ist 400 * 400 Pixel groß (Höhe, Breite).
    Dann will ich einen bestimmten Berreich der 48 * 48 Pixel groß ist ausschneiden (es soll keine neue Datei erstellt werden, wichtig!).
    Dieser Bereich liegt im Bild bei 200 * 200 (Höhe, Breite).

    Wie soll ich das anstellen?
    In der SuFu hab ich nichts gefunden. :(

    Ich danke euch schonmal für die Antworten.

    MfG
    H2112

    Edit:
    Habs mit folgendem Script gelöst:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <GuiConstantsEx.au3>
    #Include <WinAPI.au3>

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

    Global $iI, $hBitmap, $hGraphic, $hGUI, $hImage, $aSlice[4]

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

    $hGUI = GUICreate("Bildteiler", 400, 400)
    GUISetState()

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

    _GDIPlus_Startup()

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

    $hImage = _GDIPlus_BitmapCreateFromFile("Test.JPG")
    $hSplit = _GDIPlus_BitmapCloneArea($hImage, 200, 200, 48, 48)

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

    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hSplit, 100, 100)

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

    Do
    _GDIPlus_GraphicsDrawImage($hGraphic, $hSplit, 100, 100)
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    _GDIPlus_GraphicsDispose($hGraphic)
    _WinAPI_DeleteObject($hImage)

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

    _GDIPlus_Shutdown()

    [/autoit]
  • GUICtrl neu einlesen

    • Nestos
    • 29. Juli 2009 um 11:07

    Hast du dir schonmal den Befehl

    [autoit]

    GUICtrlSetData()

    [/autoit]

    angeschaut?

    Mal ein Beispiel:

    [autoit]

    $test = "2009/09/30" ; Dieser Wert wird verändert
    $simDate = GUICtrlCreateDate($test, 20, 370, 210, 20)

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

    $test = "2009/10/01" ; Der Wert wurde verändert
    GUICtrlSetData($simDate, $test)

    [/autoit]

    PS: Noch ein Tipp:
    Wenn du das/den aktuelle Jahr, Monat, Tag haben willst nimm doch:

    [autoit]

    $test = @MDAY & "/" & @MON & "/" & @YEAR

    [/autoit]
  • Kein GUI Icon

    • Nestos
    • 29. Juli 2009 um 11:00

    Falls es wem interresiert:
    Dieser Effekt lässt sich ganz einfach durch den Style

    [autoit]

    0x06000000

    [/autoit]

    erreichen. :)

    Edit: Hab den Style korregiert. (Mit dem Style 0x16000000 konnte man keine ControleFarben ändern)

  • Alternative zu FileInstall

    • Nestos
    • 17. Juli 2009 um 11:04

    Das Programm ist ein Setup, dass jeder leicht bedienen können sollte.

    Hier ist mal der Link zum Script:
    H2112 Setup

    Und da hilft mir Suchen und Ersetzen nicht wirklich was. :D

  • H2112 Setup

    • Nestos
    • 17. Juli 2009 um 11:01

    Moinsen an alle :D

    Ich habe mal ein Setup geschrieben, das für jeden einfach zu bedienen sein sollte.

    Derzeit funktioniert es noch nicht ganz, da FileInstall nur reine Strings nimmt und ich noch keine richtige alternative gefunden habe, aber ihr könnt ja mal einen Blick drauf werfen.
    Hier der Link zum HilfeThema:
    Alternative zu FileInstall

    Die unkommentierte .au3 Datei liegt im Anhang.

    Spoiler anzeigen
    [autoit]

    #cs
    ****************************************************************************************
    ****************************************************************************************
    ****************************************************************************************
    ******** ********
    ******** H2112 Setup Version 0.9.1 ********
    ******** Copyright: H2112 ( http://www.autoit.de ) ********
    ******** ********
    ******** Mit freundlicher Mithilfe von http://www.autoit.de ********
    ******** Danke an Oscar, der das Problem mit StringSplit gelöst hat. ********
    ******** ********
    ******** Wenn ihr Bugs oder Rechtschreibfehler findet, schreibt mir eine PN ********
    ******** im Forum (https://autoit.de/index.php?form=PMNew&userID=202661) ********
    ******** ********
    ******** Kommentierte Version ********
    ******** ********
    ******** *** *** ****** **** **** ****** ********
    ******** *** *** ** ** ** ** ** ** ** ** ********
    ******** ********* ** ** ** ** ********
    ******** *** *** ** ** ** ** ********
    ******** *** *** ******** ** ** ******** ********
    ******** ********
    ****************************************************************************************
    ****************************************************************************************
    ****************************************************************************************
    #ce

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

    #Region ### Schlüsselwörter, Optionen und Includes ###
    #NoTrayIcon

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

    #include <GuiEdit.au3>
    #Include <String.au3>
    #include <File.au3>
    #include <Array.au3>

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

    Opt("GUIOnEventMode", 1)
    #EndRegion ### Schlüsselwörter, Optionen und Includes ###
    ;

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

    #Region ### Variablen ###
    Global $Files = "" ; Die Files, die Installiert werden sollen (mit & trennen)

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

    Global $Name = "Test" ; Der Name des Programms
    Global $Info = "Test" ; Die Informationen über das Programm
    Global $Lizenzvereinbarung = "Test" ; Die Lizenzvereinbarung
    Global $MainFile = "Test.exe" ; Das Hauptfile, dass nach der Installation aufgerufen wird
    Global $ReadMe = "Test.txt" ; Das Liesmichfile, dass nach der Installation aufgerufen wird
    Global $InstallFolder = "C:\Programme" ; Das StartInstallationsverzeichniss

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

    #Region ### Button Namen ###
    Global $ButtonName1 = "Über"
    Global $ButtonName2 = "Weiter"
    Global $ButtonName3 = "Abbrechen"
    Global $ButtonName4 = "Zurück"
    Global $ButtonName5 = "Suchen"
    Global $ButtonName6 = "Installieren"
    Global $ButtonName7 = "Fertigstellen"
    #EndRegion ### Button Namen ###
    ;
    #Region ### Sonstige Variablen ###
    Global $Saison = 1
    Global $Name_Split = StringSplit($Name, "")
    Global $Startmenu_Dir = @StartMenuCommonDir & "\Programme"
    Global $Startmenu_Folders = _FileListToArray($Startmenu_Dir, '*', 2)
    Global $Files_Split = StringSplit($Files, "&")
    Global $Files_Split_Split[$Files_Split[0]][2]
    Global $List1_Saison4_Data = ""
    Global $Edit1_Saison5_Data = ""

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

    For $t = 1 To $Files_Split[0] Step +1
    $tmp = StringSplit($Files_Split[$t], "\")
    If $tmp[0] > UBound($Files_Split_Split, 2) Then ReDim $Files_Split_Split[$Files_Split[0]][$tmp[0] + 1]
    For $i = 1 To $tmp[0] + 1
    $Files_Split_Split[$t - 1][$i - 1] = $tmp[$i -1]
    Next
    Next
    #EndRegion ### Sonstige Variablen ###
    ;
    #Region ### Schalter ###
    Global $Schalter1 = 0
    Global $Schalter2 = 0
    Global $Schalter3 = 0
    Global $Schalter4 = 0
    Global $Schalter5 = 0
    Global $Schalter6 = 0
    Global $Schalter7 = 0
    Global $Schalter8 = 0
    #EndRegion ### Schalter ###
    ;
    #EndRegion ### Variablen ###
    ;

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

    #Region ### START $hGUI ###
    $hGUI = GUICreate("H2112 Installer - " & $Name, 477, 314, -1, -1, BitOr(0x94C800C4, 0x00000008), 0x00010101)
    GUISetOnEvent(-3, "_End")
    GUISetIcon("shell32.dll", -50, $hGUI)

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

    #Region ### AllSaisons ###
    $Logo1 = GUICtrlCreateLabel("H2112", 21, 23, 100, 31, BitOR(0x01, 0x0200), 0x00000004)
    GUICtrlSetBkColor($Logo1, 0x000000)
    GUICtrlSetColor($Logo1, 0xFFFFFF)
    GUICtrlSetFont($Logo1, 20, 600)

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

    $Logo2 = GUICtrlCreateLabel("S" & @CRLF & "e" & @CRLF & "t" & @CRLF & "u" & @CRLF & "p", 21, 54, 100, 169)
    GUICtrlSetBkColor($Logo2, 0xFFFFFF)
    GUICtrlSetColor($Logo2, 0x000000)
    GUICtrlSetFont($Logo2, 20, 600)

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

    $Logo3 = GUICtrlCreateLabel("", 60, 54, 40, 169)
    GUICtrlSetBkColor($Logo3, 0xFFFFFF)
    GUICtrlSetColor($Logo3, 0x838B8B)
    If $Name_Split[0] <= 4 Then
    GUICtrlSetFont($Logo3, 18, 600)
    ElseIf $Name_Split[0] <= 6 Then
    GUICtrlSetFont($Logo3, 16, 600)
    ElseIf $Name_Split[0] <= 8 Then
    GUICtrlSetFont($Logo3, 12, 600)
    ElseIf $Name_Split[0] <= 10 Then
    GUICtrlSetFont($Logo3, 10, 600)
    ElseIf $Name_Split[0] <= 12 Then
    GUICtrlSetFont($Logo3, 8, 600)
    ElseIf $Name_Split[0] > 12 Then
    GUICtrlSetFont($Logo3, 6, 600)
    EndIf

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

    For $i = 1 To $Name_Split[0] Step +1
    GUICtrlSetData($Logo3, GUICtrlRead($Logo3) & $Name_Split[$i] & @CRLF)
    Next

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

    $Button1 = GUICtrlCreateButton($ButtonName1, 206 ,276, 68, 23, 0x50010000, 0x00000004)
    GUICtrlSetOnEvent($Button1, "_backward")

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

    $Button2 = GUICtrlCreateButton($ButtonName2 & " >", 273, 276, 68, 23, 0x50010000, 0x00000004)
    GUICtrlSetOnEvent($Button2, "_forward")

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

    $Button3 = GUICtrlCreateButton($ButtonName3, 381, 276, 68, 23, 0x50010000, 0x00000004)
    GUICtrlSetOnEvent($Button3, "_End")
    #EndRegion ### AllSaisons ###
    ;

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

    #Region ### Saison1 ###
    $SetupIcon_Saison1 = GUICtrlCreateIcon("shell32.dll", -49, 147, 18)
    GUICtrlSetData(-1,"Deutsch|Englisch|Türkisch")

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

    $Label1_Saison1 = GUICtrlCreateLabel("Willkommen zum " & $Name & " Setup Programm." & @CRLF & "Dieses Programm installiert " & $Name & " auf Ihren" & @CRLF & "Computer.", 201, 20, 248, 40, 0x50020080, 0x00000004)

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

    $Label2_Saison1 = GUICtrlCreateLabel("Um Probleme zu vermeiden, schließen Sie bitte alle anderen" & @CRLF & "Windows-Programme bevor Sie weitermachen.", 147, 68, 302, 34, 0x50020080, 0x00000004)

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

    $Label3_Saison1 = GUICtrlCreateLabel("Drücken Sie <" & $ButtonName3 & "> um das Setup zu beenden oder" & @CRLF & "<" & $ButtonName2 & "> um fortzufahren.", 147, 114, 302, 34, 0x50020080, 0x00000004)

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

    $Seperator = GUICtrlCreateLabel("", 21, 262, 432, 1, 0x5000000E, 0x00000004)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    #EndRegion ### Saison1
    ;

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

    #Region ### Saison2 ###
    $Label1_Saison2 = GUICtrlCreateLabel("Lizenzvereinbarung", 147, 20, 150, 20)
    GUICtrlSetFont($Label1_Saison2, 9, 600)

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

    $Label2_Saison2 = GUICtrlCreateLabel("Bitte lesen Sie sich folgende Lizenvereinbarung genauestens durch. Benutzen Sie bei Bedarf die Bildlaufleiste.", 147, 40, 302, 30)

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

    $Edit1_Saison2 = GUICtrlCreateEdit($Lizenzvereinbarung, 147, 70, 302, 150, 0x50210804, 0x00000204)

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

    $Radio1_Saison2 = GUICtrlCreateRadio("Ich bin mit den Lizenzvereinbarungen einverstanden", 147, 220, 300, 20)
    GUICtrlSetOnEvent($Radio1_Saison2, "_Radio")

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

    $Radio2_Saison2 = GUICtrlCreateRadio("Ich bin mit den Lizenzvereinbarungen nicht einverstanden", 147, 240, 300, 20)
    GUICtrlSetState($Radio2_Saison2, 1)
    GUICtrlSetOnEvent($Radio2_Saison2, "_Radio")
    #EndRegion ### Saison2 ###
    ;

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

    #Region ### Saison3 ###
    $Label1_Saison3 = GUICtrlCreateLabel("Setup wird " & $Name & " in folgendes Verzeichnis installieren:", 149, 20, 300, 42, 0x50020080, 0x00000004)

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

    $Label2_Saison3 = GUICtrlCreateLabel("Um in dieses Verzeichnis zu installieren drücken Sie <" & $ButtonName2 & ">.", 149, 62, 300, 42, 0x50020080, 0x00000004)

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

    $Label3_Saison3 = GUICtrlCreateLabel("Um in ein anderes Verzeichnis zu installieren, drücken Sie <" & $ButtonName5 & "> und wählen Sie ein anderes Verzeichnis." , 149, 104, 300, 42, 0x50020080, 0x00000004)

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

    $Label4_Saison3 = GUICtrlCreateLabel("Um die Installation abzubrechen, drücken Sie <" & $ButtonName3 & ">.", 149, 146, 300, 42, 0x50020080, 0x00000004)

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

    $Group1_Saison3 = GUICtrlCreateGroup("Zielverzeichnis", 149, 205, 302, 49, 0x50000007, 0x00000004)

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

    $Label5_Saison3 = GUICtrlCreateLabel($InstallFolder & "\" & $Name, 161, 229, 203, 13, 0x5002008C, 0x00000004)

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

    $Button4_Saison3 = GUICtrlCreateButton("&" & $ButtonName5, 363, 221, 78, 23, 0x50010000, 0x00000004)
    GUICtrlSetOnEvent($Button4_Saison3, "_FolderSelect")
    #EndRegion ### Saison3 ###
    ;

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

    #Region ### Saison4 ###
    $Label1_Saison4 = GUICtrlCreateLabel("Setup wird die Verknüpfung dem folgenden Startmenü Ordner hinzufügen. Sie können einen neuen Namen eingeben oder einen bestehenden Ordner auswählen. Drücken Sie <" & $ButtonName2 & "> um fortzufahren.", 149, 20, 300, 55, 0x50020080, 0x00000004)

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

    $Label2_Saison4 = GUICtrlCreateLabel("&Startmenü Ordner", 149, 81, 302, 13, 0x50020000, 0x00000004)

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

    $Edit1_Saison4 = GUICtrlCreateEdit($Name, 149, 99, 302, 20, 0x50010000, 0x00000204)

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

    $Label3_Saison4 = GUICtrlCreateLabel("&Bestehende Ordner", 149, 128, 302, 13, 0x50020000, 0x00000004)

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

    $List1_Saison4 = GUICtrlCreateList("", 149, 145, 302, 98, 0x50210103, 0x00000204)
    GUICtrlSetOnEvent($List1_Saison4, "_ListToEdit")

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

    For $i = 1 To $Startmenu_Folders[0] Step +1
    GUICtrlSetData($List1_Saison4, $Startmenu_Folders[$i] & "|")
    Next
    #EndRegion ### Saison4 ###
    ;

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

    #Region ### Saison5 ###
    $Label1_Saison5 = GUICtrlCreateLabel("Klicken Sie auf <" & $ButtonName6 & ">, um mit der Installation zu beginnen, oder auf <" & $ButtonName4 & ">, um Ihre Einstellungen zu ändern.", 149, 20, 300, 30, 0x50020080, 0x00000004)

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

    $Edit1_Saison5 = GUICtrlCreateEdit("", 149, 60, 300, 150, 0x50210804, 0x00000204)

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

    $Progress1_Saison5 = GUICtrlCreateProgress(149, 225, 300, 25, 0x01)
    #EndRegion ### Saison5 ###
    ;

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

    #Region ### Saison6 ###
    $Label1_Saison6 = GUICtrlCreateLabel("Das Setup hat " & $Name & " erfolgreich auf Ihrem Computer installiert." & @CRLF & "Bitte wählen Sie die gewünschten Optionen aus:", 147, 20, 302, 72, 0x50020080, 0x00000004)

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

    $Checkbox1_Saison6 = GUICtrlCreateCheckbox($Name & " ausführen", 147, 161, 90, 20, 0x50010003, 0x00000004)
    GUICtrlSetOnEvent($Checkbox1_Saison6, "_CheckBox_Check")

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

    $Checkbox2_Saison6 = GUICtrlCreateCheckbox("Liesmich anzeigen", 147, 191, 105, 20, 0x50010003, 0x00000004)
    GUICtrlSetOnEvent($Checkbox1_Saison6, "_CheckBox_Check")

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

    $Checkbox3_Saison6 = GUICtrlCreateCheckbox("Desktopverknüpfung erstellen", 147, 221, 160, 20, 0x50010003, 0x00000004)
    GUICtrlSetOnEvent($Checkbox1_Saison6, "_CheckBox_Check")
    #EndRegion ### Saison6 ###
    ;

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

    #Region ### Ungültige Saisonen ausblenden ###
    _Saisonen(2, 0) ; Saison2 ausblenden
    _Saisonen(3, 0) ; Saison3 ausblenden
    _Saisonen(4, 0) ; Saison4 ausblenden
    _Saisonen(5, 0) ; Saison5 ausblenden
    _Saisonen(6, 0) ; Saison6 ausblenden
    #EndRegion ### Ungültige Saisonen ausblenden ###
    ;

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

    GUISetState(@SW_SHOW, $hGUI)
    #EndRegion ### END $hGUI ###
    ;

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

    While 1
    Sleep(10)
    WEnd

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

    #Region ### Funktionen ###
    #Region ### MainFunks ###
    Func _End()
    If GUICtrlRead($Button3) = $ButtonName3 Then
    If MsgBox(262144 + 4 + 256, "H2112 Setup - " & $Name & " - Meldung", "Wollen Sie das Setup wirklich abbrechen?") = 6 Then Exit
    ElseIf GUICtrlRead($Button3) = $ButtonName7 Then
    If $Schalter6 = 1 Then
    Run(GUICtrlRead($Label5_Saison3) & $MainFile, GUICtrlRead($Label5_Saison3))
    EndIf
    If $Schalter7 = 1 Then
    Run($ReadMe, $ReadMe)
    EndIf
    If $Schalter8 = 1 Then
    FileCreateShortcut(GUICtrlRead($Label5_Saison3) & "\" & $MainFile, @DesktopDir & "\" & $Name, GUICtrlRead($Label5_Saison3), "", "", GUICtrlRead($Label5_Saison3) & $MainFile)
    EndIf
    Exit
    EndIf
    EndFunc

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

    Func _MainInstall()
    GUICtrlSetState($Button1, 128)
    GUICtrlSetState($Button2, 128)
    GUICtrlSetState($Button3, 128)

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

    GUICtrlSetData($Edit1_Saison5, "Installationsinformationen:" & @CRLF & @CRLF & "Anzahl der Dateien: " & $Files_Split[0] & @CRLF & @CRLF & @CRLF & "Installationsverlauf:" & @CRLF & @CRLF)

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

    For $i = 1 To $Files_Split[0] Step +1
    $Edit1_Saison5_Data = GUICtrlRead($Edit1_Saison5)
    GUICtrlSetData($Edit1_Saison5, $Edit1_Saison5_Data & $Files_Split_Split[$i - 1][$Files_Split_Split[$i - 1][0]] & " wird installiert...")
    FileInstall($Files_Split[$i], GUICtrlRead($Label5_Saison3))
    GUICtrlSetData($Progress1_Saison5, (100 / $Files_Split[0]) * $i)
    GUICtrlSetData($Edit1_Saison5, $Edit1_Saison5_Data & $Files_Split_Split[$i - 1][$Files_Split_Split[$i - 1][0]] & " wurde erfolgreich installiert!" & @CRLF)
    Next

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

    GUICtrlSetData($Progress1_Saison5, 100)
    GUICtrlSetData($Edit1_Saison5, GUICtrlRead($Edit1_Saison5) & @CRLF & "Die Installation wurde erfolgreich beendet!")
    GUICtrlSetData($Label1_Saison5, "Klicken Sie auf <" & $ButtonName2 & "> um die Installation abzuschließen oder auf <" & $ButtonName3 & "> um das Setup zu abzubrechen.")
    _GUICtrlEdit_Scroll($Edit1_Saison5, 4)
    $Schalter4 = 1
    $Schalter5 = 1
    GUICtrlSetState($Button2, 64)
    GUICtrlSetState($Button3, 64)
    GUICtrlSetData($Button2, $ButtonName2 & " >")
    EndFunc
    #EndRegion ### EndFunk ###
    ;

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

    #Region ### Forward/Backward Funk ###
    Func _forward()
    If $Saison = 1 Then
    _Saisonen(1, 0)
    _Saisonen(2, 1)
    $Saison = 2
    ElseIf $Saison = 2 Then
    _Saisonen(2, 0)
    _Saisonen(3, 1)
    $Saison = 3
    ElseIf $Saison = 3 Then
    _Saisonen(3, 0)
    _Saisonen(4, 1)
    $Saison = 4
    ElseIf $Saison = 4 Then
    _Saisonen(4, 0)
    _Saisonen(5, 1)
    $Saison = 5
    ElseIf $Saison = 5 And $Schalter4 = 0 Then
    _MainInstall()
    ElseIf $Saison = 5 Then
    _Saisonen(5, 0)
    _Saisonen(6, 1)
    $Saison = 6
    EndIf
    EndFunc

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

    Func _backward()
    If $Saison = 1 Then
    MsgBox(0, "H2112 Setup - " & $Name & " - Über", $Info)
    ElseIf $Saison = 2 Then
    _Saisonen(2, 0)
    _Saisonen(1, 1)
    $Saison = 1
    ElseIf $Saison = 3 Then
    _Saisonen(3, 0)
    _Saisonen(2, 1)
    $Saison = 2
    ElseIf $Saison = 4 Then
    _Saisonen(4, 0)
    _Saisonen(3, 1)
    $Saison = 3
    ElseIf $Saison = 5 Then
    _Saisonen(5, 0)
    _Saisonen(4, 1)
    $Saison = 4
    ElseIf $Saison = 6 Then
    _Saisonen(6, 0)
    _Saisonen(5, 1)
    $Saison = 5
    EndIf
    EndFunc
    #EndRegion ### Forward/Backward Funk ###
    ;

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

    #Region ### Saisonen ein-/ausblenden Funks ###
    Func _Saisonen($Saison, $flag)
    Select

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

    Case $Saison = 1 And $flag = 0
    GUICtrlSetState($SetupIcon_Saison1, 32)
    GUICtrlSetState($Label1_Saison1, 32)
    GUICtrlSetState($Label2_Saison1, 32)
    GUICtrlSetState($Label3_Saison1, 32)
    GUICtrlSetData($Button1, "< " & $ButtonName4)

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

    Case $Saison = 1 And $flag = 1
    GUICtrlSetState($SetupIcon_Saison1, 16)
    GUICtrlSetState($Label1_Saison1, 16)
    GUICtrlSetState($Label2_Saison1, 16)
    GUICtrlSetState($Label3_Saison1, 16)
    GUICtrlSetData($Button1, $ButtonName1)

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

    Case $Saison = 2 And $flag = 0
    GUICtrlSetState($Label1_Saison2, 32)
    GUICtrlSetState($Label2_Saison2, 32)
    GUICtrlSetState($Edit1_Saison2, 32)
    GUICtrlSetState($Radio1_Saison2, 32)
    GUICtrlSetState($Radio2_Saison2, 32)
    If $Schalter2 = 0 Then
    GUICtrlSetState($Button2, 128)
    $Schalter1 = 0
    EndIf
    GUICtrlSetState($Button2, 64)

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

    Case $Saison = 2 And $flag = 1
    GUICtrlSetState($Label1_Saison2, 16)
    GUICtrlSetState($Label2_Saison2, 16)
    GUICtrlSetState($Edit1_Saison2, 16)
    GUICtrlSetState($Radio1_Saison2, 16)
    GUICtrlSetState($Radio2_Saison2, 16)
    If $Schalter1 = 0 Then
    GUICtrlSetState($Button2, 128)
    $Schalter1 = 1
    EndIf

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

    Case $Saison = 3 And $flag = 0
    GUICtrlSetState($Label1_Saison3, 32)
    GUICtrlSetState($Label2_Saison3, 32)
    GUICtrlSetState($Label3_Saison3, 32)
    GUICtrlSetState($Label4_Saison3, 32)
    GUICtrlSetState($Group1_Saison3, 32)
    GUICtrlSetState($Label5_Saison3, 32)
    GUICtrlSetState($Button4_Saison3, 32)

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

    Case $Saison = 3 And $flag = 1
    GUICtrlSetState($Label1_Saison3, 16)
    GUICtrlSetState($Label2_Saison3, 16)
    GUICtrlSetState($Label3_Saison3, 16)
    GUICtrlSetState($Label4_Saison3, 16)
    GUICtrlSetState($Group1_Saison3, 16)
    GUICtrlSetState($Label5_Saison3, 16)
    GUICtrlSetState($Button4_Saison3, 16)

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

    Case $Saison = 4 And $flag = 0
    GUICtrlSetState($Label1_Saison4, 32)
    GUICtrlSetState($Label2_Saison4, 32)
    GUICtrlSetState($Edit1_Saison4, 32)
    GUICtrlSetState($Label3_Saison4, 32)
    GUICtrlSetState($List1_Saison4, 32)

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

    Case $Saison = 4 And $flag = 1
    GUICtrlSetState($Label1_Saison4, 16)
    GUICtrlSetState($Label2_Saison4, 16)
    GUICtrlSetState($Edit1_Saison4, 16)
    GUICtrlSetState($Label3_Saison4, 16)
    GUICtrlSetState($List1_Saison4, 16)

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

    Case $Saison = 5 And $flag = 0
    GUICtrlSetState($Label1_Saison5, 32)
    GUICtrlSetState($Edit1_Saison5, 32)
    GUICtrlSetState($Progress1_Saison5, 32)
    If $Schalter4 = 0 Then
    GUICtrlSetData($Button2, $ButtonName2 & " >")
    EndIf

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

    Case $Saison = 5 And $flag = 1
    GUICtrlSetState($Label1_Saison5, 16)
    GUICtrlSetState($Edit1_Saison5, 16)
    GUICtrlSetState($Progress1_Saison5, 16)
    If $Schalter4 = 0 Then
    GUICtrlSetData($Button2, $ButtonName6)
    EndIf

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

    Case $Saison = 6 And $flag = 0
    GUICtrlSetState($Label1_Saison6, 32)
    GUICtrlSetState($Checkbox1_Saison6, 32)
    GUICtrlSetState($Checkbox2_Saison6, 32)
    GUICtrlSetState($Checkbox3_Saison6, 32)
    GUICtrlSetData($Button3, $ButtonName3)
    If $Schalter5 = 1 Then
    GUICtrlSetState($Button1, 128)
    EndIf
    GUICtrlSetState($Button2, 64)

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

    Case $Saison = 6 And $flag = 1
    GUICtrlSetState($Label1_Saison6, 16)
    GUICtrlSetState($Checkbox1_Saison6, 16)
    GUICtrlSetState($Checkbox2_Saison6, 16)
    GUICtrlSetState($Checkbox3_Saison6, 16)
    GUICtrlSetData($Button3, $ButtonName7)
    If $Schalter5 = 1 Then
    GUICtrlSetState($Button1, 64)
    EndIf
    GUICtrlSetState($Button2, 128)

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

    EndSelect
    EndFunc
    #EndRegion ### Saisonen ein-/ausblenden Funks ###
    ;

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

    #Region ### Sonstige Funks ###
    Func _FolderSelect()
    $InstallFolder = FileSelectFolder("Bitte wählen sie ein Verzeichnis aus:", "", 1, $InstallFolder, $hGUI)
    If $InstallFolder = "" Then $InstallFolder = "C:\Programme"
    GUICtrlSetData($Label5_Saison3, $InstallFolder & "\" & $Name)
    EndFunc

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

    Func _Radio()
    Select
    Case @GUI_CtrlId = $Radio1_Saison2
    GUICtrlSetState($Button2, 64)
    $Schalter2 = 1
    Case @GUI_CtrlId = $Radio2_Saison2
    GUICtrlSetState($Button2, 128)
    $Schalter2 = 0
    EndSelect
    EndFunc

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

    Func _ListToEdit()
    If $Schalter3 = 0 Then
    $Schalter3 = 1
    $List1_Saison4_Data = GUICtrlRead($List1_Saison4)
    ElseIf $Schalter3 = 1 And GUICtrlRead($List1_Saison4) = $List1_Saison4_Data Then
    GUICtrlSetData($Edit1_Saison4, $List1_Saison4_Data)
    $Schalter3 = 0
    Else
    $Schalter3 = 0
    EndIf
    EndFunc

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

    Func _CheckBox_Check()
    Select

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

    Case @GUI_CtrlId = $Checkbox1_Saison6
    If $Schalter6 = 0 Then
    $Schalter6 = 1
    ElseIf $Schalter6 = 1 Then
    $Schalter6 = 0
    EndIf

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

    Case @GUI_CtrlId = $Checkbox2_Saison6
    If $Schalter7 = 0 Then
    $Schalter7 = 1
    ElseIf $Schalter6 = 1 Then
    $Schalter7 = 0
    EndIf

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

    Case @GUI_CtrlId = $Checkbox3_Saison6
    If $Schalter8 = 0 Then
    $Schalter8 = 1
    ElseIf $Schalter6 = 1 Then
    $Schalter8 = 0
    EndIf

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

    EndSelect
    EndFunc
    #Region ### Sonstige Funks ###
    ;
    #EndRegion ### Funktionen ###
    ;

    [/autoit]

    Edit: Saisonen ein-/ausblenden ist nun eine Funktion und mit Select - THX an Mega

    Würde mich über Feedback freuen :)

  • Alternative zu FileInstall

    • Nestos
    • 17. Juli 2009 um 10:13

    Genau die Quelle kann ich in meinem Fall nicht als reinen String übergeben, weil es sonst viel zu umständlich werden würde.

    Deshalb suche ich ja eine Alternative, die genauso wie FileInstall arbeitet.

  • Alternative zu FileInstall

    • Nestos
    • 17. Juli 2009 um 09:38

    Guten Morgen :)

    Wie die Überschrift schon sagt, suche ich eine alternative zu FileInstall, die genau das selbe macht, aber mit Variablen arbeitet.

    Im deutschem Forum hab ich mit der SuFu nichts gefunden und im Englischem Forum hab ichs nicht wirklich verstanden.

    Danke schonmal für die Antworten.

    MfG
    H2112

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™