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

Beiträge von name22

  • [TCP Tool Help] Abgeschlossen

    • name22
    • 20. Februar 2013 um 19:22

    1. Wenn du nicht vor hast deinen eigenen Beitrag zu deinem Projekt zu leisten ist das völlig in Ordnung, aber dann ist dieser Thread im falschen Forum. Falls das also so sein sollte, dann gehört das in "Programmieranfragen - mit Gegenleistung". ;)
    Wir können dir aber auch gerne "Hilfe & Unterstützung" bei deinem Vorhaben leisten :).
    2. Kann es sein, dass du Server und Client verwechselst? Es klingt nämlich ein wenig seltsam wenn sich mehrere Server zu einem einzelnen Clienten verbinden wo sie alle aufgelistet werden :S. Oder hat der Client tatsächlich die einzelnen Adressen von jedem Server?

  • GUI Object größe in gui ermitteln

    • name22
    • 20. Februar 2013 um 15:30

    Da es sich sowieso um deine eigene GUI handelt brauchst du das AutoIt Window Info Tool nicht, sondern kannst einfach das Handle benutzen (Rückgabewert von GUICreate).
    Das verwendest du als ersten Parameter bei ControlGetPos. Wie kommst du darauf den einfach weg zu lassen? :huh:

  • Alles gute zum 26'ten, chip

    • name22
    • 19. Februar 2013 um 15:37

    Happy Birthday chip! :party:

  • 300k Posts

    • name22
    • 18. Februar 2013 um 22:01

    *Tröööt* :party:

  • RosettaCode Sammelthread

    • name22
    • 16. Februar 2013 um 22:39

    Art: Neu-Implementierung
    Task: http://rosettacode.org/wiki/Animate_a_pendulum
    Beteiligte: name22
    Skript:

    Spoiler anzeigen
    [autoit]

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

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

    Opt("GUIOnEventMode", 1)

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

    Global $hWnd, $hDC_Window, $hDC_Bitmap, $hBitmap, $hOldObj, $hGraphics, _
    $hBrush_Ball, $hPen_String

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

    Global Const $fPi = ACos(-1)
    Global Const $iWidth = 400, $iHeight = 250 ;GUI Size
    Global Const $iRadius_Ball = 10, $iWidth_String = 2 ;Object Sizes
    Global Const $iColor_BG = 0xFFFFFFFF, $iColor_String = 0xFF000000, $iColor_Ball = 0xFF0000FF ;Colors
    Global Const $iLength = 180, $fGravity = 0.1 ;Physical Properties

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

    Global $fAngle = $fPi / 2, $fSpeed = 0, $fAccel = 0, $fX_Ball, $fY_Ball

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

    $hWnd = GUICreate("Pendulum", $iWidth, $iHeight)
    GUISetState()

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

    OnAutoItExitRegister("_Shutdown")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_DrawBuffer")
    GUIRegisterMsg($WM_PAINT, "_DrawBuffer")

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

    $hDC_Window = _WinAPI_GetDC($hWnd)
    $hDC_Bitmap = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iWidth, $iHeight)
    $hOldObj = _WinAPI_SelectObject($hDC_Bitmap, $hBitmap)

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

    _GDIPlus_Startup()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHDC($hDC_Bitmap)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)

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

    $hBrush_Ball = _GDIPlus_BrushCreateSolid($iColor_Ball)
    $hPen_String = _GDIPlus_PenCreate($iColor_String, $iWidth_String)

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

    While Sleep(10)
    _GDIPlus_GraphicsClear($hGraphics, $iColor_BG)
    $fAccel = -$fGravity / $iLength * Sin($fAngle)
    $fSpeed += $fAccel
    $fAngle += $fSpeed
    $fX_Ball = Cos($fAngle + $fPi / 2) * $iLength + $iWidth / 2
    $fY_Ball = Sin($fAngle + $fPi / 2) * $iLength + 50
    _GDIPlus_GraphicsDrawLine($hGraphics, $iWidth / 2, 50, $fX_Ball, $fY_Ball, $hPen_String)
    _GDIPlus_GraphicsFillEllipse($hGraphics, $fX_Ball - $iRadius_Ball, $fY_Ball - $iRadius_Ball, $iRadius_Ball * 2, $iRadius_Ball * 2, $hBrush_Ball)
    _WinAPI_BitBlt($hDC_Window, 0, 0, $iWidth, $iHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
    WEnd

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

    Func _DrawBuffer()
    _WinAPI_BitBlt($hDC_Window, 0, 0, $iWidth, $iHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
    EndFunc

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

    Func _Shutdown()
    _WinAPI_SelectObject($hDC_Bitmap, $hOldObj)
    _WinAPI_ReleaseDC($hWnd, $hDC_Window)
    _WinAPI_DeleteDC($hDC_Bitmap)
    _WinAPI_DeleteObject($hBitmap)

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

    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BrushDispose($hBrush_Ball)
    _GDIPlus_PenDispose($hPen_String)
    _GDIPlus_Shutdown()
    EndFunc

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

    Func _Close()
    Exit
    EndFunc

    [/autoit]

    Screenshot:

    Spoiler anzeigen

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    Die Simulation folgt keiner sinnvollen/genauen Zeitachse. Wenn ich da mein standardmäßiges FPS management mit reingepackt hätte, wäre es irgendwie zu kompliziert finde ich.

  • RosettaCode Sammelthread

    • name22
    • 16. Februar 2013 um 22:05

    Oder man müsste die Rekursion umgehen, was aber ein längeres Script zur Folge hat das immer noch sehr viel Zeit für große Zahlen in Anspruch nimmt.

  • RosettaCode Sammelthread

    • name22
    • 16. Februar 2013 um 21:23

    minx Danke. Ich finde die Moore-Neighbourhood lässt das ganze ein wenig.. rechteckig aussehen, aber es sollte mit den Vorgaben des Wikis übereinstimmen. Im Wikipedia Artikel ist allerdings von einer Neumann-Neighborhood die Rede ?( .

    Edit: Was findet ihr "besser"/"cooler", zeilenweises update der GUI oder Update nach jeder vollständigen Iteration?

    1. Variante (Original)
    [autoit]

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

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

    Global $hDll_GDI32 = DllOpen("gdi32.dll")

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

    Global $iLength = 100
    Global $iColor_Tree = 0x00FF00, $iColor_Fire = 0x0000FF, $iColor_Empty = 0 ;Colors
    Global $fIgnition = 0.0001, $fGrowth = 0.01, $fTree = 0.55 ;Propabilities

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

    Opt("GUIOnEventMode", 1)

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

    $hWnd = GUICreate("Forest Fire", $iLength, $iLength)
    GUISetState()

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

    ;I use a second bitmap to contain the current pixel-states instead of a 2D-Array, sue me!
    $hDC_Window = _WinAPI_GetDC($hWnd)
    $hDC_BitmapTmp = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hDC_Bitmap = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hBitmapTmp = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iLength, $iLength)
    $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iLength, $iLength)
    $hObj_Old1 = _WinAPI_SelectObject($hDC_BitmapTmp, $hBitmapTmp)
    $hObj_Old2 = _WinAPI_SelectObject($hDC_Bitmap, $hBitmap)

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

    OnAutoItExitRegister("_Shutdown")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_DrawBuffer")
    GUIRegisterMsg($WM_PAINT, "_DrawBuffer")

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

    _WinAPI_SetBkColor($hDC_Bitmap, $iColor_Empty)

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

    For $iY = 0 To $iLength - 1
    For $iX = 0 To $iLength - 1
    If Random(0, 1) < $fTree Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Tree)
    Next
    Next

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

    _BitBlt($hDC_Bitmap, $hDC_BitmapTmp)
    _BitBlt($hDC_Bitmap, $hDC_Window)

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

    While True
    For $iY = 0 To $iLength - 1
    For $iX = 0 To $iLength - 1
    Switch _GetPixel($hDC_BitmapTmp, $iX, $iY)
    Case $iColor_Fire
    _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Empty)
    Case $iColor_Empty
    If Random(0, 1) < $fGrowth Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Tree)
    Case $iColor_Tree
    For $iX_Off = -1 To 1
    For $iY_Off = -1 To 1
    If $iX_Off = 0 And $iY_Off = 0 Then ContinueLoop
    If _GetPixel($hDC_BitmapTmp, $iX + $iX_Off, $iY + $iY_Off) = $iColor_Fire Then
    _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Fire)
    ContinueLoop 3
    EndIf
    Next
    Next
    If Random(0, 1) < $fIgnition Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Fire)
    EndSwitch
    Next
    Next
    _BitBlt($hDC_Bitmap, $hDC_Window)
    _BitBlt($hDC_Bitmap, $hDC_BitmapTmp)
    WEnd

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

    Func _SetPixel(ByRef $hDC, $iX, $iY, $iColor)
    DllCall($hDll_GDI32, 'INT', 'SetPixelV', 'HWND', $hDC, 'INT', $iX, 'INT', $iY, 'DWORD', $iColor)
    EndFunc ;==>_SetPixel

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

    Func _GetPixel(ByRef $hDC, $iX, $iY)
    $aRet = DllCall($hDll_GDI32, 'DWORD', 'GetPixel', 'HWND', $hDC, 'INT', $iX, 'INT', $iY)
    Return $aRet[0]
    EndFunc ;==>_GetPixel

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

    Func _DrawBuffer()
    _BitBlt($hDC_Bitmap, $hDC_Window)
    EndFunc

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

    Func _BitBlt(ByRef $hDC_Source, ByRef $hDC_Target)
    DllCall($hDll_GDI32, "BOOL", "BitBlt", "HANDLE", $hDC_Target, "INT", 0, "INT", 0, "INT", $iLength, "INT", $iLength, "HANDLE", $hDC_Source, "INT", 0, "INT", 0, "DWORD", $SRCCOPY)
    EndFunc ;==>_DrawBuffer

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

    Func _Shutdown()
    _WinAPI_SelectObject($hDC_BitmapTmp, $hObj_Old1)
    _WinAPI_SelectObject($hDC_Bitmap, $hObj_Old2)
    _WinAPI_ReleaseDC($hWnd, $hDC_Window)
    _WinAPI_DeleteDC($hDC_BitmapTmp)
    _WinAPI_DeleteDC($hDC_Bitmap)
    _WinAPI_DeleteObject($hBitmapTmp)
    _WinAPI_DeleteObject($hBitmap)

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

    DllClose($hDll_GDI32)
    EndFunc ;==>_Shutdown

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

    Func _Close()
    Exit
    EndFunc ;==>_Close

    [/autoit]
    2. Variante (Zeilenweise)
    [autoit]

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

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

    Global $hDll_GDI32 = DllOpen("gdi32.dll")

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

    Global $iLength = 100
    Global $iColor_Tree = 0x00FF00, $iColor_Fire = 0x0000FF, $iColor_Empty = 0 ;Colors
    Global $fIgnition = 0.0001, $fGrowth = 0.01, $fTree = 0.55 ;Propabilities

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

    Opt("GUIOnEventMode", 1)

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

    $hWnd = GUICreate("Forest Fire", $iLength, $iLength)
    GUISetState()

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

    ;I use a second bitmap to contain the current pixel-states instead of a 2D-Array, sue me!
    $hDC_Window = _WinAPI_GetDC($hWnd)
    $hDC_BitmapTmp = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hDC_Bitmap = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hBitmapTmp = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iLength, $iLength)
    $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iLength, $iLength)
    $hObj_Old1 = _WinAPI_SelectObject($hDC_BitmapTmp, $hBitmapTmp)
    $hObj_Old2 = _WinAPI_SelectObject($hDC_Bitmap, $hBitmap)

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

    OnAutoItExitRegister("_Shutdown")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_DrawBuffer")
    GUIRegisterMsg($WM_PAINT, "_DrawBuffer")

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

    _WinAPI_SetBkColor($hDC_Bitmap, $iColor_Empty)

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

    For $iY = 0 To $iLength - 1
    For $iX = 0 To $iLength - 1
    If Random(0, 1) < $fTree Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Tree)
    Next
    Next

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

    _BitBlt($hDC_Bitmap, $hDC_BitmapTmp)
    _BitBlt($hDC_Bitmap, $hDC_Window)

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

    While True
    For $iY = 0 To $iLength - 1
    For $iX = 0 To $iLength - 1
    Switch _GetPixel($hDC_BitmapTmp, $iX, $iY)
    Case $iColor_Fire
    _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Empty)
    Case $iColor_Empty
    If Random(0, 1) < $fGrowth Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Tree)
    Case $iColor_Tree
    For $iX_Off = -1 To 1
    For $iY_Off = -1 To 1
    If $iX_Off = 0 And $iY_Off = 0 Then ContinueLoop
    If _GetPixel($hDC_BitmapTmp, $iX + $iX_Off, $iY + $iY_Off) = $iColor_Fire Then
    _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Fire)
    ContinueLoop 3
    EndIf
    Next
    Next
    If Random(0, 1) < $fIgnition Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Fire)
    EndSwitch
    Next
    _BitBlt($hDC_Bitmap, $hDC_Window)
    Next
    _BitBlt($hDC_Bitmap, $hDC_BitmapTmp)
    WEnd

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

    Func _SetPixel(ByRef $hDC, $iX, $iY, $iColor)
    DllCall($hDll_GDI32, 'INT', 'SetPixelV', 'HWND', $hDC, 'INT', $iX, 'INT', $iY, 'DWORD', $iColor)
    EndFunc ;==>_SetPixel

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

    Func _GetPixel(ByRef $hDC, $iX, $iY)
    $aRet = DllCall($hDll_GDI32, 'DWORD', 'GetPixel', 'HWND', $hDC, 'INT', $iX, 'INT', $iY)
    Return $aRet[0]
    EndFunc ;==>_GetPixel

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

    Func _DrawBuffer()
    _BitBlt($hDC_Bitmap, $hDC_Window)
    EndFunc

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

    Func _BitBlt(ByRef $hDC_Source, ByRef $hDC_Target)
    DllCall($hDll_GDI32, "BOOL", "BitBlt", "HANDLE", $hDC_Target, "INT", 0, "INT", 0, "INT", $iLength, "INT", $iLength, "HANDLE", $hDC_Source, "INT", 0, "INT", 0, "DWORD", $SRCCOPY)
    EndFunc ;==>_DrawBuffer

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

    Func _Shutdown()
    _WinAPI_SelectObject($hDC_BitmapTmp, $hObj_Old1)
    _WinAPI_SelectObject($hDC_Bitmap, $hObj_Old2)
    _WinAPI_ReleaseDC($hWnd, $hDC_Window)
    _WinAPI_DeleteDC($hDC_BitmapTmp)
    _WinAPI_DeleteDC($hDC_Bitmap)
    _WinAPI_DeleteObject($hBitmapTmp)
    _WinAPI_DeleteObject($hBitmap)

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

    DllClose($hDll_GDI32)
    EndFunc ;==>_Shutdown

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

    Func _Close()
    Exit
    EndFunc ;==>_Close

    [/autoit]
  • RosettaCode Sammelthread

    • name22
    • 16. Februar 2013 um 21:19

    Art: Neu-Implementierung
    Task: http://rosettacode.org/wiki/Forest_fire
    Beteiligte: name22
    Skript:

    Spoiler anzeigen
    [autoit]

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

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

    Global $hDll_GDI32 = DllOpen("gdi32.dll")

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

    Global $iLength = 100
    Global $iColor_Tree = 0x00FF00, $iColor_Fire = 0x0000FF, $iColor_Empty = 0 ;Colors
    Global $fIgnition = 0.0001, $fGrowth = 0.01, $fTree = 0.55 ;Propabilities

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

    Opt("GUIOnEventMode", 1)

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

    $hWnd = GUICreate("Forest Fire", $iLength, $iLength)
    GUISetState()

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

    ;I use a second bitmap to contain the current pixel-states instead of a 2D-Array, sue me!
    $hDC_Window = _WinAPI_GetDC($hWnd)
    $hDC_BitmapTmp = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hDC_Bitmap = _WinAPI_CreateCompatibleDC($hDC_Window)
    $hBitmapTmp = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iLength, $iLength)
    $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC_Window, $iLength, $iLength)
    $hObj_Old1 = _WinAPI_SelectObject($hDC_BitmapTmp, $hBitmapTmp)
    $hObj_Old2 = _WinAPI_SelectObject($hDC_Bitmap, $hBitmap)

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

    OnAutoItExitRegister("_Shutdown")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_DrawBuffer")
    GUIRegisterMsg($WM_PAINT, "_DrawBuffer")

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

    _WinAPI_SetBkColor($hDC_Bitmap, $iColor_Empty)

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

    For $iY = 0 To $iLength - 1
    For $iX = 0 To $iLength - 1
    If Random(0, 1) < $fTree Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Tree)
    Next
    Next

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

    _BitBlt($hDC_Bitmap, $hDC_BitmapTmp)
    _BitBlt($hDC_Bitmap, $hDC_Window)

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

    While True
    For $iY = 0 To $iLength - 1
    For $iX = 0 To $iLength - 1
    Switch _GetPixel($hDC_BitmapTmp, $iX, $iY)
    Case $iColor_Fire
    _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Empty)
    Case $iColor_Empty
    If Random(0, 1) < $fGrowth Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Tree)
    Case $iColor_Tree
    For $iX_Off = -1 To 1
    For $iY_Off = -1 To 1
    If $iX_Off = 0 And $iY_Off = 0 Then ContinueLoop
    If _GetPixel($hDC_BitmapTmp, $iX + $iX_Off, $iY + $iY_Off) = $iColor_Fire Then
    _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Fire)
    ContinueLoop 3
    EndIf
    Next
    Next
    If Random(0, 1) < $fIgnition Then _SetPixel($hDC_Bitmap, $iX, $iY, $iColor_Fire)
    EndSwitch
    Next
    Next
    _BitBlt($hDC_Bitmap, $hDC_Window)
    _BitBlt($hDC_Bitmap, $hDC_BitmapTmp)
    WEnd

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

    Func _SetPixel(ByRef $hDC, $iX, $iY, $iColor)
    DllCall($hDll_GDI32, 'INT', 'SetPixelV', 'HWND', $hDC, 'INT', $iX, 'INT', $iY, 'DWORD', $iColor)
    EndFunc ;==>_SetPixel

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

    Func _GetPixel(ByRef $hDC, $iX, $iY)
    $aRet = DllCall($hDll_GDI32, 'DWORD', 'GetPixel', 'HWND', $hDC, 'INT', $iX, 'INT', $iY)
    Return $aRet[0]
    EndFunc ;==>_GetPixel

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

    Func _DrawBuffer()
    _BitBlt($hDC_Bitmap, $hDC_Window)
    EndFunc

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

    Func _BitBlt(ByRef $hDC_Source, ByRef $hDC_Target)
    DllCall($hDll_GDI32, "BOOL", "BitBlt", "HANDLE", $hDC_Target, "INT", 0, "INT", 0, "INT", $iLength, "INT", $iLength, "HANDLE", $hDC_Source, "INT", 0, "INT", 0, "DWORD", $SRCCOPY)
    EndFunc ;==>_DrawBuffer

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

    Func _Shutdown()
    _WinAPI_SelectObject($hDC_BitmapTmp, $hObj_Old1)
    _WinAPI_SelectObject($hDC_Bitmap, $hObj_Old2)
    _WinAPI_ReleaseDC($hWnd, $hDC_Window)
    _WinAPI_DeleteDC($hDC_BitmapTmp)
    _WinAPI_DeleteDC($hDC_Bitmap)
    _WinAPI_DeleteObject($hBitmapTmp)
    _WinAPI_DeleteObject($hBitmap)

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

    DllClose($hDll_GDI32)
    EndFunc ;==>_Shutdown

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

    Func _Close()
    Exit
    EndFunc ;==>_Close

    [/autoit]

    Screenshots:

    Spoiler anzeigen

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Bilder

    • Forest Fire.PNG
      • 19,67 kB
      • 215 × 238
    • Forest Fire 2.PNG
      • 20,1 kB
      • 214 × 238
  • "Child" in GUI neu sätzen

    • name22
    • 16. Februar 2013 um 18:45

    Ja das geht.

    [autoit]

    _WinAPI_SetWindowLong($hWnd, $GWL_HWNDPARENT, $hWnd_NewParent)

    [/autoit]


    Es würde mich aber echt interessieren wozu man das braucht. :huh:

  • Befehl per Post an AV-Receiver senden

    • name22
    • 16. Februar 2013 um 12:49

    Versuch es mal so:

    Spoiler anzeigen
    [autoit]

    #include "WinHttp.au3"

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

    $host = "192.168.178.18"
    $data = '<YAMAHA_AV cmd="PUT"><Main_Zone><Volume><Lvl><Val>Up</Val><Exp></Exp><Unit></Unit></Lvl></Volume></Main_Zone></YAMAHA_AV>'
    ;=============HEADER=============
    ;~ $command_lenght = StringLen($data)

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

    ;~ $head = ""
    ;~ $head &= "POST /YamahaRemoteControl/ctrl HTTP/1.1" & @CRLF
    ;~ $head &= "Host " & $host & @CRLF
    ;~ $head &= "User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv12.0) Gecko/20100101 Firefox/12.0" & @CRLF
    ;~ $head &= "Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF
    ;~ $head &= "Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3" & @CRLF
    ;~ $head &= "Accept-Encoding gzip, deflate" & @CRLF
    ;~ $head &= "Connection keep-alive" & @CRLF
    ;~ $head &= "Content-Type text/xml; charset=UTF-8" & @CRLF
    ;~ $head &= "Referer http;" & $host & "/" & @CRLF
    ;~ $head &= "Content-Length " & $command_lenght & @CRLF
    ;~ $head &= "Pragma no-cache" & @CRLF
    ;~ $head &= "Cache-Control no-cache" & @CRLF & @CRLF
    ;~ $head &= $data

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

    ; Initialize and get session handle
    Global $hOpen = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; WOW64; rv12.0) Gecko/20100101 Firefox/12.0")

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

    ; Get connection handle
    Global $hConnect = _WinHttpConnect($hOpen, $host)

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

    ; Make a request
    Global $hRequest = _WinHttpOpenRequest($hConnect, "POST", "/YamahaRemoteControl/ctrl") ;Pfad zur Ressource vergessen

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

    ; Send it. Specify additional data to send too. This is required by the Google API:
    _WinHttpSendRequest($hRequest, "Content-Type: text/xml", $data) ;Doppelpunkt bei Header vergessen

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

    ; Wait for the response
    _WinHttpReceiveResponse($hRequest)

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

    ; See what's returned
    Global $sReturned
    If _WinHttpQueryDataAvailable($hRequest) Then ; if there is data
    Do
    $sReturned &= _WinHttpReadData($hRequest)
    Until @error
    EndIf

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

    ; Close handles
    _WinHttpCloseHandle($hRequest)
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hOpen)

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

    ; See what's returned
    MsgBox(0, "Returned", $sReturned)

    [/autoit]


    Ich hab die Fehler die mir aufgefallen sind kommentiert.

  • Befehl per Post an AV-Receiver senden

    • name22
    • 16. Februar 2013 um 00:29

    Ja dafür gibt es eine UDF: WinHTTP

  • DropDown Liste füllen

    • name22
    • 15. Februar 2013 um 15:33

    Ich denke du suchst:

    [autoit]

    _GUICtrlComboBox_GetCurSel

    [/autoit]
  • DropDown Liste füllen

    • name22
    • 15. Februar 2013 um 15:02

    Schau dir mal die Hilfe zu dem Befehl GUICtrlSetData an. Da steht, dass die Funktion als zweiten Parameter für ComboControls einen String erwartet, der die einzelnen Items (durch "|" getrennt) enthält. Du versuchst aber direkt ein Array zu übergeben und damit kommt die Funktion nicht klar.

  • Mit einzelnem Tortenstück aus der Funktion _GDIPlus_GraphicsFillPie() weiterarbeiten

    • name22
    • 14. Februar 2013 um 20:14
    Zitat

    Was mich anfangs abgeschreckt hatte, war, dass sie lediglich vertikal und horizontal anzuwenden sind und nicht diagonal. Das hiesse also, dass ich mein Bild erst drehen müsste, um einen „schrägen“ Bildausschnitt zu erhalten. Aber mit Matrixfunktionen habe ich ein wenig Erfahrung und sollte kein grosses Problem sein. Ausserdem habe ich in der GDIP.au3 auch die Funktionen TextureScale- und TextureRotate-Transform entdeckt. Muss ich aber noch ausprobieren.


    Das hatte ich schon vermutet, aber ich konnte es nicht eindeutig aus deinen Beiträgen herauslesen ^^. Da versucht man das Thema möglichst simpel zu halten und dann ist das genau das Falsche... ;)

  • Funkiton Gesucht !

    • name22
    • 14. Februar 2013 um 19:58

    "Funkiton" klingt irgendwie interessant :D.
    Versuch es doch mal mit ControlCommand. Falls es sich um ein SysTabControl32 Control handelt, dann solltest du mit dem Command "TabRight" bzw. "TabLeft" den Tab wechseln können.
    In der Hilfe müsstest du auch ein Beispiel finden.

  • Txt File Inhalt auslesen

    • name22
    • 14. Februar 2013 um 14:18

    So in etwa?

    [autoit]

    #include <Array.au3>

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

    $sString = "SRX00052" & @CRLF & "Other Data" & @CRLF & "SRX00053"
    $aRes = StringRegExp($sString, "(SRX\d+)", 3)

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

    _ArrayDisplay($aRes)

    [/autoit]

    Falls du nur die Zahlen willst, nimm stattdessen dieses Pattern:

    Code
    "SRX(\d+)"

    Edit: Da war wohl jemand schneller ^^.

  • Hilfe beim Fileupload via winhttp

    • name22
    • 14. Februar 2013 um 13:41

    Als erstes brauchst du ein Request, das du mit _WinHttp_OpenRequest erstellst, bevor du ein Request senden kannst :rolleyes: , nichts überstürzen.
    Dann empfehle ich dir die Hilfedatei zu nutzen die beim WinHTTP Archiv beiliegt wenn du es von der richtigen Quelle herunterlädst. Falls du das noch nicht getan haben solltes, bitte nachholen: http://code.google.com/p/autoit-winhttp/downloads/list
    In dieser Hilfedatei findest du Erklärungen zu den einzelnen Funktionen sowie einige Beispiele. Ich würde dir empfehlen das Beispiel zu _WinHttpOpenRequest anzuschauen, da dort die grundlegenden Funktionen u.A. anhand eines "POST"-Requests erläutert werden. Das ist ja genau das was du vorhast.

  • GDI+ Abspann

    • name22
    • 14. Februar 2013 um 13:20

    Es scheint alles ganz gut zu funktionieren. Nettes Script ;). Ich denke das mangelnde Interesse an deinem Script rührt zum einen von den begrezten Anwendungsmöglichkeiten und zum anderen haben die meisten kleinen AutoIt Spiele u.Ä. die bis jetzt entwickelt wurden meist nicht mehr als 1 Teammitglied.
    In meinem Fall sähe das Ganze also recht eintönig aus (siehe Anhang).

    Dateien

    Creator.txt 293 Byte – 372 Downloads
  • Mit einzelnem Tortenstück aus der Funktion _GDIPlus_GraphicsFillPie() weiterarbeiten

    • name22
    • 12. Februar 2013 um 18:31

    Jetzt bin ich echt nur noch verwirrt... Aber ich freu mich, dass du dein Problem jetzt umgehen konntest ^^.

  • Mit einzelnem Tortenstück aus der Funktion _GDIPlus_GraphicsFillPie() weiterarbeiten

    • name22
    • 12. Februar 2013 um 16:20
    Zitat

    Wenn ich "_GDIPlus_GraphicsFillPie" anwende, dann zeichne ich doch die gesamte Torte und nicht "nur den Ausschnitt, der übrig bleibt".


    Nein du zeichnest nur das Tortenstück, dass durch die beiden Winkelangaben spezifiziert ist. Du willst doch dieses Tortenstück, dass man in deinem Script sieht nachdem man auf "Color All but One" geklickt hat, direkt irgendwo hinzeichnen, ohne dazu das ganze Bild zeichnen zu müssen, oder? Und genau das kannst du auch machen, indem du von vornerein dieses Tortenstück das übrigbleibt (nicht das, dass du im Moment per _GDIPlus_GraphicsFillPie zeichnest) zeichnest. Die vorher geladene Textur kannst du dann als Füllfarbe für dieses "Objekt" verwenden.
    Probier es doch erstmal aus, so wie ich es eben beschrieben habe. Dann siehst du ja, ob es das ist was du meintest.

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™