Bildschirmschonereinstellungsfenster kleines Vorschaufenster

  • Hallo Forum,

    nun habe ich es endlich geschafft das Script auch mit Bildschirmschohnertool zum laufen zu bringen, nun hätte ich noch eine Frage an euch, und zwar:

    Im Bildschirmschohnereinstellungsfenster, gibt es noch einen kleinen Bildschirm für die kleine Vorschau des Screensavers, dieser ist bei mir leider noch Schwarz, also es wird nichts angezeigt, könnt ihr mir helfen, dass in diesem die Vorschau dess Screensavers auch angezeigt wird??

    Hier das komplette Script:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <Date.au3>
    #include <EditConstants.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>
    #include <SliderConstants.au3>
    #include <Timers.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WinAPI.au3>
    #include <GuiImageList.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ; -Authors: name22 (http://www.autoit.de), Andy (http://www.autoit.de), Facemix (http://www.autoit.de)

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

    #region WINDOWSTOOL
    _Singleton(@AutoItExe)

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

    Global $iCount = 10, $iExplosion = 100, $iExplosionGround = 1, $iRadius = 600, $iBack = 0x09000000, $iSleep = 5

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

    Global Const $app_name = "GDI+ Countdown-Screensaver by (C) Clemens 2012"
    Global Const $ver = "v1.0 build 2012-11-24"
    Global $hGUI, $iW, $iH, $GUI_H, $GUI_W, $GUI_X, $GUI_Y, $r, $show_FPS = 0
    Global $maxStars = 150, $size = 1
    Global $parent_pid, $aChildProcess
    Global Const $hFullScreen = WinGetHandle("Program Manager")
    Global Const $aFullScreen = WinGetPos($hFullScreen)
    Global $main_screen_x = Abs($aFullScreen[0])
    Global Const $ini_file = @ScriptDir & "\GDI+ Countdown-Screensaver.ini"
    Global $hWnd

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

    Global $cmdparam = "/s"
    If $CmdLine[0] Then $cmdparam = StringLeft($CmdLine[1], 2)

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

    Switch $cmdparam
    Case "/s"
    $iW = @DesktopWidth
    $iH = @DesktopHeight
    $GUI_X = $aFullScreen[0]
    $GUI_Y = $aFullScreen[1]
    $GUI_W = $aFullScreen[2]
    $GUI_H = $aFullScreen[3]
    $r = (($iW + $iH) / 2) / 0x300
    $hGUI = GUICreate($app_name, $GUI_W, $GUI_H, $GUI_X, $GUI_Y, $WS_POPUP, $WS_EX_TOPMOST)
    Case "/c"
    Opt("GUIOnEventMode", 0)
    MsgBox(0,"Einstellungen","Die Einstellungen sind derzeit noch nicht vorhanden! - made by (C) Clemens")
    Exit

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

    Case "/p"
    $iW = 152
    $iH = 112
    $GUI_X = 0
    $GUI_Y = 0
    $GUI_W = $iW
    $GUI_H = $iH
    $main_screen_x = 0
    $r = (($iW + $iH) / 2) / 0x30
    $show_FPS = False
    ;$maxStars = 30
    $size = 1
    ;$hWnd = GUICreate("GDI+ Countdown-Screensaver by (C) Clemens", $GUI_W, $GUI_H, $GUI_X, $GUI_Y, $WS_POPUP)
    _WinAPI_SetParent($hWnd, $CmdLine[2])
    Exit
    EndSwitch
    #endregion WINDOWSTOOL

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

    ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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

    #region BILDSCHIRMSCHOHNER
    Opt("GUIOnEventMode", 1)

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

    Global Const $nTau = ACos(-1) * 2
    Global $vNTdll = DllOpen("ntdll.dll")
    Global $tPrecSleep = DllStructCreate("int64 time;")
    Global $pPrecSleep = DllStructGetPtr($tPrecSleep)

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

    #region SETTINGS

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

    Global $iWidth = @DesktopWidth
    Global $iHeight = @DesktopHeight
    Global $nFPS = 60

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

    Global $nStepSpeed = 1

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

    #region COLORS
    Global $iARGB_BG = 0xFF505050
    Global $iARGB_Snow = 0xFFFFFFFF
    Global $iARGB_TextFill = 0xFF0000FF
    Global $iARGB_TextFill2 = 0xFFFF0000
    Global $iARGB_TextFill3 = 0xFF0000FF
    Global $iARGB_TextFill4 = 0xFF353535
    Global $iARGB_TextBorder = 0xFFA00000
    #endregion COLORS

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

    #region SNOWFLAKES
    Global $iFlakeCount = 500
    Global $iMinFallingSpeed = 20, $iMaxFallingSpeed = 50
    Global $iMinOscillations = 2, $iMaxOscillations = 5
    Global $iMinOscillationDist = 10, $iMaxOscillationDist = 50
    Global $iMinRadius = 1, $iMaxRadius = 3
    #endregion SNOWFLAKES

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

    #region SNOWBLAST
    Global $iBlastRadius = 200
    Global $iBlastAccell = 300
    Global $nAirFriction = 0.95
    #endregion SNOWBLAST

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

    #endregion SETTINGS

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

    #region Global Variables
    Global $aFlakes[$iFlakeCount + 1][8] = [[$iFlakeCount]]
    Global $hDC_Window, $hDC_Bitmap, $hBitmap, $hGraphics, $hOldObj, $hBrush_Snow, $hBrush_TextFill, $hPen_Border
    Global $hMatrix, $tLayout, $hFormat, $hFamily, $hPath, $nScale, $nStep = 0, $iM, $iS, $iD, $sText, $sTextOld
    Global $nSleepTime = 1000 / $nFPS
    #endregion Global Variables

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

    #region Generate Snow
    For $i = 1 To $aFlakes[0][0]
    $aFlakes[$i][0] = Random(10, $iWidth - 10, 1)
    $aFlakes[$i][1] = Random(-$iHeight, 0, 1)
    $aFlakes[$i][2] = 0
    $aFlakes[$i][3] = 0
    $aFlakes[$i][4] = Random($iMinRadius, $iMaxRadius, 1)
    $aFlakes[$i][5] = Random($iMinFallingSpeed, $iMaxFallingSpeed)
    $aFlakes[$i][6] = Random($iMinOscillations, $iMaxOscillations, 1)
    $aFlakes[$i][7] = Random($iMinOscillationDist, $iMaxOscillationDist) * (-1) ^ Random(1, 2, 1)
    Next
    #endregion Generate Snow

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

    $hWnd = GUICreate("Screensaver", $iWidth, $iHeight, 0, 0, BitOR($WS_POPUP, $WS_POPUPWINDOW, $WS_EX_TOPMOST))
    GUISetState()

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

    #region Initialize GFX Resources
    $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_GraphicsSetClipRect($hGraphics, 0, 0, $iWidth, $iHeight)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)

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

    $hBrush_Snow = _GDIPlus_BrushCreateSolid($iARGB_Snow)
    $hBrush_TextFill = _GDIPlus_BrushCreateSolid($iARGB_TextFill)
    $hPen_Border = _GDIPlus_PenCreate($iARGB_TextBorder, 3)
    DllCall($ghGDIPDll, "uint", "GdipSetPenLineJoin", "hwnd", $hPen_Border, "int", 2)

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

    $hMatrix = _GDIPlus_MatrixCreate()
    $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Arial")
    $hPath = _CreatePath("88 - 88:88:88")

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

    _GDIPlus_GraphicsClear($hGraphics, $iARGB_BG)
    _Redraw()
    #endregion Initialize GFX Resources

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

    #region Register Events
    OnAutoItExitRegister("_Shutdown")
    GUIRegisterMsg($WM_PAINT, "_Redraw")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_Click")

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

    AdlibRegister("_UpdateTime", 100)
    #endregion Register Events

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

    $nT_Sleep = TimerInit() + $nSleepTime

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

    While True
    DllStructSetData($tPrecSleep, "time", -10000 * ($nSleepTime - TimerDiff($nT_Sleep)))
    DllCall($vNTdll, "dword", "ZwDelayExecution", "int", 0, "ptr", $pPrecSleep)
    $nFrameTime = TimerDiff($nT_Sleep)
    $nT_Sleep = TimerInit()

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

    $nFPS_Cur = 1000 / $nFrameTime

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

    $nStep += $nStepSpeed / $nFPS_Cur
    $nScale = Abs(Sin($nStep))

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

    _GDIPlus_GraphicsClear($hGraphics, $iARGB_BG)

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

    DllCall($ghGDIPDll, "uint", "GdipTranslateWorldTransform", "hwnd", $hGraphics, "float", -$iWidth / 2, "float", -$iHeight / 2, "int", False)
    DllCall($ghGDIPDll, "uint", "GdipScaleWorldTransform", "hwnd", $hGraphics, "float", $nScale, "float", $nScale, "int", True)
    DllCall($ghGDIPDll, "uint", "GdipTranslateWorldTransform", "hwnd", $hGraphics, "float", $iWidth / 2, "float", $iHeight / 2, "int", True)

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

    DllCall($ghGDIPDll, "uint", "GdipDrawPath", "hwnd", $hGraphics, "hwnd", $hPen_Border, "hwnd", $hPath)
    DllCall($ghGDIPDll, "uint", "GdipFillPath", "hwnd", $hGraphics, "hwnd", $hBrush_TextFill, "hwnd", $hPath)

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

    DllCall($ghGDIPDll, "uint", "GdipResetWorldTransform", "hwnd", $hGraphics)

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

    For $i = 1 To $aFlakes[0][0]
    $aFlakes[$i][1] += ($aFlakes[$i][5] + $aFlakes[$i][3]) / $nFPS_Cur
    $aFlakes[$i][0] += (Sin($aFlakes[$i][1] / $iHeight * $nTau * $aFlakes[$i][6]) * $aFlakes[$i][7] + $aFlakes[$i][2]) / $nFPS_Cur
    $aFlakes[$i][2] *= $nAirFriction
    $aFlakes[$i][3] *= $nAirFriction
    If $aFlakes[$i][1] > $iHeight Or $aFlakes[$i][0] < -20 Or $aFlakes[$i][0] > $iWidth + 20 Then
    $aFlakes[$i][0] = Random(10, $iWidth - 10, 1)
    $aFlakes[$i][1] = Random(-$iHeight, 0, 1)
    $aFlakes[$i][2] = 0
    $aFlakes[$i][3] = 0
    $aFlakes[$i][4] = Random($iMinRadius, $iMaxRadius, 1)
    $aFlakes[$i][5] = Random($iMinFallingSpeed, $iMaxFallingSpeed)
    $aFlakes[$i][6] = Random($iMinOscillations, $iMaxOscillations, 1)
    $aFlakes[$i][7] = Random($iMinOscillationDist, $iMaxOscillationDist)
    EndIf
    _GDIPlus_GraphicsFillEllipse($hGraphics, $aFlakes[$i][0] - $aFlakes[$i][4] / 2, $aFlakes[$i][1] - $aFlakes[$i][4] / 2, $aFlakes[$i][4] * 2, $aFlakes[$i][4] * 2, $hBrush_Snow)
    Next
    _WinAPI_BitBlt($hDC_Window, 0, 0, $iWidth, $iHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
    WEnd

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

    Func _UpdateTime()
    _TicksToTime(_DateDiff('s', _NowCalc(), "2013/01/01 00:00:00") * 1000, $iH, $iM, $iS)
    If $iH > 23 Then
    $iD = StringFormat("%02i", $iH / 24); volle Tage
    $iH = $iH - ($iD * 24); volle Tage abziehen
    Else
    $iD = 0
    EndIf

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

    If $sText = "00 - 00:00:00" Then
    AdlibUnRegister("_UpdateTime")
    Feuerwerk() ; Funktion Feuerwerk soll dann ausgeführt werden
    Else
    $sText = StringFormat("%02i - %02i:%02i:%02i", $iD, $iH, $iM, $iS)
    EndIf

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

    If $sText <> $sTextOld Then
    $sTextOld = $sText
    DllCall($ghGDIPDll, "uint", "GdipResetPath", "hwnd", $hPath)
    DllCall($ghGDIPDll, "uint", "GdipAddPathString", "hwnd", $hPath, "wstr", $sText, "int", -1, "hwnd", $hFamily, "int", 1, "float", 100, "ptr", DllStructGetPtr($tLayout), "hwnd", $hFormat)
    DllCall($ghGDIPDll, "uint", "GdipTransformPath", "hwnd", $hPath, "hwnd", $hMatrix)
    EndIf
    EndFunc

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

    Func _Click()
    Local $tMousePos = _WinAPI_GetMousePos(True, $hWnd)
    For $i = 1 To $aFlakes[0][0]
    $iX_Dist = ($aFlakes[$i][0] - $aFlakes[$i][4]) - DllStructGetData($tMousePos, "X")
    $iY_Dist = ($aFlakes[$i][1] - $aFlakes[$i][4]) - DllStructGetData($tMousePos, "Y")
    $iDist = Sqrt($iX_Dist ^ 2 + $iY_Dist ^ 2)
    If $iDist = 0 Then ContinueLoop
    If $iDist < $iBlastRadius Then
    $aFlakes[$i][2] = (1 - $iDist / $iBlastRadius) * ($iX_Dist / $iDist) * $iBlastAccell
    $aFlakes[$i][3] = (1 - $iDist / $iBlastRadius) * ($iY_Dist / $iDist) * $iBlastAccell
    EndIf
    Next
    EndFunc ;==>_Click

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

    Func _Redraw()
    _WinAPI_BitBlt($hDC_Window, 0, 0, $iWidth, $iHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
    EndFunc ;==>_Redraw

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

    Func _Close()
    Exit
    EndFunc ;==>_Close

    [/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_Snow)
    _GDIPlus_PenDispose($hPen_Border)
    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_FontFamilyDispose($hFamily)
    DllCall($ghGDIPDll, "uint", "GdipDeletePath", "hwnd", $hPath)
    _GDIPlus_Shutdown()

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

    DllClose($vNTdll)
    EndFunc ;==>_Shutdown

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

    Func _CreatePath($sText)

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

    Local $tBounds = _GDIPlus_RectFCreate(0, 0, 0, 0)

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

    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
    If @error Or Not IsArray($aResult) Then Return SetError(1, 1, False)
    Local $hPath = $aResult[2]

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

    DllCall($ghGDIPDll, "uint", "GdipAddPathString", "hwnd", $hPath, "wstr", $sText, "int", -1, "hwnd", $hFamily, "int", 1, "float", 100, "ptr", DllStructGetPtr($tLayout), "hwnd", $hFormat)
    DllCall($ghGDIPDll, "uint", "GdipGetPathWorldBounds", "hwnd", $hPath, "ptr", DllStructGetPtr($tBounds), "hwnd", 0, "hwnd", 0)

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

    _GDIPlus_MatrixTranslate($hMatrix, -DllStructGetData($tBounds, "X"), -DllStructGetData($tBounds, "Y"))
    _GDIPlus_MatrixScale($hMatrix, $iWidth / DllStructGetData($tBounds, "Width"), $iHeight / DllStructGetData($tBounds, "Height"), True)
    DllCall($ghGDIPDll, "uint", "GdipTransformPath", "hwnd", $hPath, "hwnd", $hMatrix)

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

    Return $hPath
    EndFunc ;==>_CreatePath

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

    #region FEUERWERK

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

    Func Feuerwerk()
    Local $aDraw
    Local $iCount = 10, $iExplosion = 100, $iExplosionGround = 1, $iRadius = 600, $iBack = 0x09000000, $iSleep = 5
    Global $iWidth2 = @DesktopWidth, $iHeight2 = @DesktopHeight, $aStart[$iCount][4] = [[Random(0, $iWidth2, 0), Random(0, $iHeight2, 0), 0, _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))],[Random(0, $iWidth2, 0), Random(0, $iHeight2, 0), 0, _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))]], $iSleeping = 0
    For $i = 0 To UBound($aStart) - 1
    $aStart[$i][0] = Random(0, $iWidth2, 0)
    $aStart[$i][1] = Random(0, $iHeight2, 0)
    $aStart[$i][2] = $iExplosion
    $aStart[$i][3] = _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))
    Next

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

    While True
    _GDIPlus_GraphicsClear($hGraphics, $iBack)
    If $iSleeping = 0 Then
    For $j = 0 To UBound($aStart) - 1
    For $i = 0 To 35
    $aDraw = Dreieck($i * 10, $aStart[$j][2] - $iExplosion)
    _GDIPlus_GraphicsDrawRect($hGraphics, $aStart[$j][0] + Round($aDraw[0], 0), $aStart[$j][1] + Round($aDraw[1], 0), 2, 2, $aStart[$j][3])
    Next
    $aStart[$j][2] += $iExplosionGround + Ceiling(10 * $iExplosion / ($aStart[$j][2]))
    If $aStart[$j][2] > $iRadius Then
    $iSleeping = $iSleep
    $aStart[$j][0] = Random(0, $iWidth2, 0)
    $aStart[$j][1] = Random(0, $iHeight2, 0)
    $aStart[$j][2] = $iExplosion
    _GDIPlus_PenDispose($aStart[$j][3])
    $aStart[$j][3] = _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))
    EndIf
    Next
    Else
    $iSleeping -= 1
    EndIf
    _WinAPI_RedrawWindow($hWnd, 0, 0, 2)
    WEnd
    EndFunc ;==>Feuerwerk

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

    Func Dreieck($iWinkel, $iLaenge)
    Local $iDeg = 0.0174532925199433, $aRet[2]
    $aRet[0] = Sin($iWinkel * $iDeg) * $iLaenge
    $aRet[1] = Cos($iWinkel * $iDeg) * $iLaenge
    Return $aRet
    EndFunc ;==>Dreieck

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

    #endregion FEUERWERK

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GDIPlus_GraphicsSetClipRect
    ; Description ...: Updates the clipping region of a Graphics object to a region that is the combination of itself and a rectangle
    ; Syntax.........: _GDIPlus_GraphicsSetClipRect($hGraphics, $nX, $nY, $nWidth, $nHeight[, $iCombineMode = 0])
    ; Parameters ....: $hGraphics - Pointer to a Graphics object
    ; $nX - X coordinate of the upper-left corner of the rectangle
    ; $nY - Y coordinate of the upper-left corner of the rectangle
    ; $nWidth - Width of the rectangle
    ; $nHeight - Height of the rectangle
    ; $iCombineMode - Regions combination mode:
    ; |0 - The existing region is replaced by the new region
    ; |1 - The existing region is replaced by the intersection of itself and the new region
    ; |2 - The existing region is replaced by the union of itself and the new region
    ; |3 - The existing region is replaced by the result of performing an XOR on the two regions
    ; |4 - The existing region is replaced by the portion of itself that is outside of the new region
    ; |5 - The existing region is replaced by the portion of the new region that is outside of the existing region
    ; Return values .: Success - True
    ; Failure - False and either:
    ; |@error and @extended are set if DllCall failed
    ; |$GDIP_STATUS contains a non zero value specifying the error code
    ; Remarks .......: None
    ; Related .......: None
    ; Link ..........; @@MsdnLink@@ GdipSetClipRect
    ; Example .......; No
    ; ===============================================================================================================================
    Func _GDIPlus_GraphicsSetClipRect($hGraphics, $nX, $nY, $nWidth, $nHeight, $iCombineMode = 0)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipSetClipRect", "hwnd", $hGraphics, "float", $nX, "float", $nY, "float", $nWidth, "float", $nHeight, "int", $iCombineMode)

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

    If @error Then Return SetError(@error, @extended, False)
    $GDIP_STATUS = $aResult[0]
    Return $aResult[0] = 0
    EndFunc ;==>_GDIPlus_GraphicsSetClipRect
    #endregion BILDSCHIRMSCHOHNER

    [/autoit]

    Ich hoffe ihr könnt mir helfen...

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

    Einmal editiert, zuletzt von Facemix (19. Dezember 2012 um 23:35) aus folgendem Grund: präfix

  • Hi

    In der Sektion "/p" bekommst du als zweiten Parameter in $CmdLine[2] das Handle des Vorschaufensters.
    Via WinGetPos kannst du dessen Größe bestimmen.

    Im Previewmode erstellst du selber kein GUI, sondern zeichnest direkt in das Vorschaufenster.
    Am einfachsten mit _GdiPlus_GraphicsCreateFromHWND und _GdiPlus_GraphicsDrawImageRect

    Hier findest du ein paar Beispiel-Bildschirmschoner:
    Bildschirmschoner incl. Config und Preview
    GDI+ Screensavers (jetzt mit 2 Beispielen)

    E

  • hättest du mal ein Beispiel für mich? denn egal wie ich das ganze anpacke, dann wird das ganze zwar angezeigt aber nicht in dem dafür vorgesehenen bereich sondern auf der X und Y Achse 0 des Desktops :D

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

  • Probiere es mal damit:

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_OutFile=c:\windows\system32\Test.scr
    #AutoIt3Wrapper_UseX64=n

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

    #include <Date.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>
    #include <Timers.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    _Singleton(@AutoItExe)

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

    ; -Authors: name22 (http://www.autoit.de), Andy (http://www.autoit.de), Facemix (http://www.autoit.de)

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

    Global $idle_o, $idle_n, $parent_pid, $aChildProcess, $iFlakeCount, $iMaxRadius

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

    #region WINDOWSTOOL

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

    Global $iCount = 10, $iExplosion = 100, $iExplosionGround = 1, $iRadius = 600, $iBack = 0x09000000, $iSleep = 5

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

    Global Const $app_name = "GDI+ Countdown-Screensaver by (C) Clemens 2012"
    Global Const $ver = "v1.0 build 2012-11-24"
    Global $hGUI, $iW, $iH, $GUI_H, $GUI_W, $GUI_X, $GUI_Y, $r, $show_FPS = 0
    Global $maxStars = 150, $size = 1
    Global $parent_pid, $aChildProcess
    Global Const $hFullScreen = WinGetHandle("Program Manager")
    Global Const $aFullScreen = WinGetPos($hFullScreen)
    Global $main_screen_x = Abs($aFullScreen[0])
    Global Const $ini_file = @ScriptDir & "\GDI+ Countdown-Screensaver.ini"

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

    Global $cmdparam = "/s"
    If $CmdLine[0] Then $cmdparam = StringLeft($CmdLine[1], 2)

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

    Switch $cmdparam
    Case "/s"
    $iW = @DesktopWidth
    $iH = @DesktopHeight
    $GUI_X = $aFullScreen[0]
    $GUI_Y = $aFullScreen[1]
    $GUI_W = $aFullScreen[2]
    $GUI_H = $aFullScreen[3]
    $hGUI = GUICreate($app_name, $GUI_W, $GUI_H, $GUI_X, $GUI_Y, $WS_POPUP, $WS_EX_TOPMOST)
    $iFlakeCount = 500
    $iMaxRadius = 3
    Case "/c"
    Opt("GUIOnEventMode", 0)
    MsgBox(0,"Einstellungen","Die Einstellungen sind derzeit noch nicht vorhanden! - made by (C) Clemens")
    Exit

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

    Case "/p"
    $iFlakeCount = 50
    $iMaxRadius = 2
    $iW = 152
    $iH = 112
    $GUI_X = 0
    $GUI_Y = 0
    $GUI_W = $iW
    $GUI_H = $iH
    $main_screen_x = 0
    $show_FPS = False
    ;$maxStars = 30
    $size = 1
    $hGUI = GUICreate("GDI+ Countdown-Screensaver by (C) Clemens", $GUI_W, $GUI_H, $GUI_X, $GUI_Y, $WS_POPUP)
    _WinAPI_SetParent($hGUI, $CmdLine[2])
    $parent_pid = _WinAPI_GetParentProcess(@AutoItPID)
    EndSwitch
    #endregion WINDOWSTOOL

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

    ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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

    #region BILDSCHIRMSCHOHNER
    Global Const $nTau = ACos(-1) * 2
    Global $vNTdll = DllOpen("ntdll.dll")
    Global $tPrecSleep = DllStructCreate("int64 time;")
    Global $pPrecSleep = DllStructGetPtr($tPrecSleep)

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

    #region SETTINGS

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

    Global $iWidth = $iW
    Global $iHeight = $iH
    Global $nFPS = 25

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

    Global $nStepSpeed = 1

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

    #region COLORS
    Global $iARGB_BG = 0xFF505050
    Global $iARGB_Snow = 0xFFFFFFFF
    Global $iARGB_TextFill = 0xFF0000FF
    Global $iARGB_TextFill2 = 0xFFFF0000
    Global $iARGB_TextFill3 = 0xFF0000FF
    Global $iARGB_TextFill4 = 0xFF353535
    Global $iARGB_TextBorder = 0xFFA00000
    #endregion COLORS

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

    #region SNOWFLAKES
    Global $iMinFallingSpeed = 20, $iMaxFallingSpeed = 50
    Global $iMinOscillations = 2, $iMaxOscillations = 5
    Global $iMinOscillationDist = 10, $iMaxOscillationDist = 50
    Global $iMinRadius = 1
    #endregion SNOWFLAKES

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

    #region SNOWBLAST
    Global $iBlastRadius = 200
    Global $iBlastAccell = 300
    Global $nAirFriction = 0.95
    #endregion SNOWBLAST

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

    #endregion SETTINGS

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

    #region Global Variables
    Global $aFlakes[$iFlakeCount + 1][8] = [[$iFlakeCount]]
    Global $hDC_Window, $hDC_Bitmap, $hBitmap, $hGraphics, $hOldObj, $hBrush_Snow, $hBrush_TextFill, $hPen_Border
    Global $hMatrix, $tLayout, $hFormat, $hFamily, $hPath, $nScale, $nStep = 0, $iM, $iS, $iD, $sText, $sTextOld
    Global $nSleepTime = 1000 / $nFPS
    #endregion Global Variables

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

    #region Generate Snow
    For $i = 1 To $aFlakes[0][0]
    $aFlakes[$i][0] = Random(10, $iWidth - 10, 1)
    $aFlakes[$i][1] = Random(-$iHeight, 0, 1)
    $aFlakes[$i][2] = 0
    $aFlakes[$i][3] = 0
    $aFlakes[$i][4] = Random($iMinRadius, $iMaxRadius, 1)
    $aFlakes[$i][5] = Random($iMinFallingSpeed, $iMaxFallingSpeed)
    $aFlakes[$i][6] = Random($iMinOscillations, $iMaxOscillations, 1)
    $aFlakes[$i][7] = Random($iMinOscillationDist, $iMaxOscillationDist) * (-1) ^ Random(1, 2, 1)
    Next
    #endregion Generate Snow

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

    GUISetState()

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

    #region Initialize GFX Resources
    $hDC_Window = _WinAPI_GetDC($hGUI)
    $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_GraphicsSetClipRect($hGraphics, 0, 0, $iWidth, $iHeight)
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)

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

    $hBrush_Snow = _GDIPlus_BrushCreateSolid($iARGB_Snow)
    $hBrush_TextFill = _GDIPlus_BrushCreateSolid($iARGB_TextFill)
    $hPen_Border = _GDIPlus_PenCreate($iARGB_TextBorder, 3)
    DllCall($ghGDIPDll, "uint", "GdipSetPenLineJoin", "hwnd", $hPen_Border, "int", 2)

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

    $hMatrix = _GDIPlus_MatrixCreate()
    $tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    $hFormat = _GDIPlus_StringFormatCreate()
    $hFamily = _GDIPlus_FontFamilyCreate("Arial")
    $hPath = _CreatePath("88 - 88:88:88")

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

    _GDIPlus_GraphicsClear($hGraphics, $iARGB_BG)
    _Redraw()
    #endregion Initialize GFX Resources

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

    #region Register Events
    OnAutoItExitRegister("_Shutdown")
    GUIRegisterMsg($WM_PAINT, "_Redraw")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Close")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_Click")

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

    AdlibRegister("_UpdateTime", 100)
    #endregion Register Events

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

    $nT_Sleep = TimerInit() + $nSleepTime

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

    While True
    If $cmdparam = "/s" Then
    GUISetCursor(16, 1, $hGUI)
    $idle_n = _Timer_GetIdleTime()
    If $idle_n < $idle_o Then _Close()
    $idle_o = $idle_n
    Else
    If Not BitAND(WinGetState($hGUI), 2) Then _Close()
    $aChildProcess = _WinAPI_EnumChildProcess($parent_pid)
    If $aChildProcess[0][0] > 1 Then _Close()
    EndIf
    DllStructSetData($tPrecSleep, "time", -10000 * ($nSleepTime - TimerDiff($nT_Sleep)))
    DllCall($vNTdll, "dword", "ZwDelayExecution", "int", 0, "ptr", $pPrecSleep)
    $nFrameTime = TimerDiff($nT_Sleep)
    $nT_Sleep = TimerInit()

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

    $nFPS_Cur = 1000 / $nFrameTime

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

    $nStep += $nStepSpeed / $nFPS_Cur
    $nScale = Abs(Sin($nStep))

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

    _GDIPlus_GraphicsClear($hGraphics, $iARGB_BG)

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

    DllCall($ghGDIPDll, "uint", "GdipTranslateWorldTransform", "hwnd", $hGraphics, "float", -$iWidth / 2, "float", -$iHeight / 2, "int", False)
    DllCall($ghGDIPDll, "uint", "GdipScaleWorldTransform", "hwnd", $hGraphics, "float", $nScale, "float", $nScale, "int", True)
    DllCall($ghGDIPDll, "uint", "GdipTranslateWorldTransform", "hwnd", $hGraphics, "float", $iWidth / 2, "float", $iHeight / 2, "int", True)

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

    DllCall($ghGDIPDll, "uint", "GdipDrawPath", "hwnd", $hGraphics, "hwnd", $hPen_Border, "hwnd", $hPath)
    DllCall($ghGDIPDll, "uint", "GdipFillPath", "hwnd", $hGraphics, "hwnd", $hBrush_TextFill, "hwnd", $hPath)

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

    DllCall($ghGDIPDll, "uint", "GdipResetWorldTransform", "hwnd", $hGraphics)

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

    For $i = 1 To $aFlakes[0][0]
    $aFlakes[$i][1] += ($aFlakes[$i][5] + $aFlakes[$i][3]) / $nFPS_Cur
    $aFlakes[$i][0] += (Sin($aFlakes[$i][1] / $iHeight * $nTau * $aFlakes[$i][6]) * $aFlakes[$i][7] + $aFlakes[$i][2]) / $nFPS_Cur
    $aFlakes[$i][2] *= $nAirFriction
    $aFlakes[$i][3] *= $nAirFriction
    If $aFlakes[$i][1] > $iHeight Or $aFlakes[$i][0] < -20 Or $aFlakes[$i][0] > $iWidth + 20 Then
    $aFlakes[$i][0] = Random(10, $iWidth - 10, 1)
    $aFlakes[$i][1] = Random(-$iHeight, 0, 1)
    $aFlakes[$i][2] = 0
    $aFlakes[$i][3] = 0
    $aFlakes[$i][4] = Random($iMinRadius, $iMaxRadius, 1)
    $aFlakes[$i][5] = Random($iMinFallingSpeed, $iMaxFallingSpeed)
    $aFlakes[$i][6] = Random($iMinOscillations, $iMaxOscillations, 1)
    $aFlakes[$i][7] = Random($iMinOscillationDist, $iMaxOscillationDist)
    EndIf
    _GDIPlus_GraphicsFillEllipse($hGraphics, $aFlakes[$i][0] - $aFlakes[$i][4] / 2, $aFlakes[$i][1] - $aFlakes[$i][4] / 2, $aFlakes[$i][4] * 2, $aFlakes[$i][4] * 2, $hBrush_Snow)
    Next
    _WinAPI_BitBlt($hDC_Window, 0, 0, $iWidth, $iHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
    WEnd

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

    Func _UpdateTime()
    _TicksToTime(_DateDiff('s', _NowCalc(), @YEAR + 1 & "/01/01 00:00:00") * 1000, $iH, $iM, $iS)
    If $iH > 23 Then
    $iD = StringFormat("%02i", $iH / 24); volle Tage
    $iH = $iH - ($iD * 24); volle Tage abziehen
    Else
    $iD = 0
    EndIf

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

    If $sText = "00 - 00:00:00" Then
    AdlibUnRegister("_UpdateTime")
    Feuerwerk() ; Funktion Feuerwerk soll dann ausgeführt werden
    Else
    $sText = StringFormat("%02i - %02i:%02i:%02i", $iD, $iH, $iM, $iS)
    EndIf

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

    If $sText <> $sTextOld Then
    $sTextOld = $sText
    DllCall($ghGDIPDll, "uint", "GdipResetPath", "hwnd", $hPath)
    DllCall($ghGDIPDll, "uint", "GdipAddPathString", "hwnd", $hPath, "wstr", $sText, "int", -1, "hwnd", $hFamily, "int", 1, "float", 100, "ptr", DllStructGetPtr($tLayout), "hwnd", $hFormat)
    DllCall($ghGDIPDll, "uint", "GdipTransformPath", "hwnd", $hPath, "hwnd", $hMatrix)
    EndIf
    EndFunc

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

    Func _Click()
    Local $tMousePos = _WinAPI_GetMousePos(True, $hGUI)
    For $i = 1 To $aFlakes[0][0]
    $iX_Dist = ($aFlakes[$i][0] - $aFlakes[$i][4]) - DllStructGetData($tMousePos, "X")
    $iY_Dist = ($aFlakes[$i][1] - $aFlakes[$i][4]) - DllStructGetData($tMousePos, "Y")
    $iDist = Sqrt($iX_Dist ^ 2 + $iY_Dist ^ 2)
    If $iDist = 0 Then ContinueLoop
    If $iDist < $iBlastRadius Then
    $aFlakes[$i][2] = (1 - $iDist / $iBlastRadius) * ($iX_Dist / $iDist) * $iBlastAccell
    $aFlakes[$i][3] = (1 - $iDist / $iBlastRadius) * ($iY_Dist / $iDist) * $iBlastAccell
    EndIf
    Next
    EndFunc ;==>_Click

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

    Func _Redraw()
    _WinAPI_BitBlt($hDC_Window, 0, 0, $iWidth, $iHeight, $hDC_Bitmap, 0, 0, $SRCCOPY)
    EndFunc ;==>_Redraw

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

    Func _Close()
    _Shutdown()
    GUIDelete($hGUI)
    Exit
    EndFunc ;==>_Close

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

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

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

    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BrushDispose($hBrush_Snow)
    _GDIPlus_PenDispose($hPen_Border)
    _GDIPlus_MatrixDispose($hMatrix)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_FontFamilyDispose($hFamily)
    DllCall($ghGDIPDll, "uint", "GdipDeletePath", "hwnd", $hPath)
    _GDIPlus_Shutdown()

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

    DllClose($vNTdll)
    EndFunc ;==>_Shutdown

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

    Func _CreatePath($sText)

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

    Local $tBounds = _GDIPlus_RectFCreate(0, 0, 0, 0)

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

    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreatePath", "int", 0, "int*", 0)
    If @error Or Not IsArray($aResult) Then Return SetError(1, 1, False)
    Local $hPath = $aResult[2]

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

    DllCall($ghGDIPDll, "uint", "GdipAddPathString", "hwnd", $hPath, "wstr", $sText, "int", -1, "hwnd", $hFamily, "int", 1, "float", 100, "ptr", DllStructGetPtr($tLayout), "hwnd", $hFormat)
    DllCall($ghGDIPDll, "uint", "GdipGetPathWorldBounds", "hwnd", $hPath, "ptr", DllStructGetPtr($tBounds), "hwnd", 0, "hwnd", 0)

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

    _GDIPlus_MatrixTranslate($hMatrix, -DllStructGetData($tBounds, "X"), -DllStructGetData($tBounds, "Y"))
    _GDIPlus_MatrixScale($hMatrix, $iWidth / DllStructGetData($tBounds, "Width"), $iHeight / DllStructGetData($tBounds, "Height"), True)
    DllCall($ghGDIPDll, "uint", "GdipTransformPath", "hwnd", $hPath, "hwnd", $hMatrix)

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

    Return $hPath
    EndFunc ;==>_CreatePath

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

    #region FEUERWERK

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

    Func Feuerwerk()
    Local $aDraw
    Local $iCount = 10, $iExplosion = 100, $iExplosionGround = 1, $iRadius = 600, $iBack = 0x09000000, $iSleep = 5
    Global $iWidth2 = @DesktopWidth, $iHeight2 = @DesktopHeight, $aStart[$iCount][4] = [[Random(0, $iWidth2, 0), Random(0, $iHeight2, 0), 0, _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))],[Random(0, $iWidth2, 0), Random(0, $iHeight2, 0), 0, _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))]], $iSleeping = 0
    For $i = 0 To UBound($aStart) - 1
    $aStart[$i][0] = Random(0, $iWidth2, 0)
    $aStart[$i][1] = Random(0, $iHeight2, 0)
    $aStart[$i][2] = $iExplosion
    $aStart[$i][3] = _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))
    Next

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

    While True
    _GDIPlus_GraphicsClear($hGraphics, $iBack)
    If $iSleeping = 0 Then
    For $j = 0 To UBound($aStart) - 1
    For $i = 0 To 35
    $aDraw = Dreieck($i * 10, $aStart[$j][2] - $iExplosion)
    _GDIPlus_GraphicsDrawRect($hGraphics, $aStart[$j][0] + Round($aDraw[0], 0), $aStart[$j][1] + Round($aDraw[1], 0), 2, 2, $aStart[$j][3])
    Next
    $aStart[$j][2] += $iExplosionGround + Ceiling(10 * $iExplosion / ($aStart[$j][2]))
    If $aStart[$j][2] > $iRadius Then
    $iSleeping = $iSleep
    $aStart[$j][0] = Random(0, $iWidth2, 0)
    $aStart[$j][1] = Random(0, $iHeight2, 0)
    $aStart[$j][2] = $iExplosion
    _GDIPlus_PenDispose($aStart[$j][3])
    $aStart[$j][3] = _GDIPlus_PenCreate(Random(0xFF000000, 0xFFFFFFFF, 0))
    EndIf
    Next
    Else
    $iSleeping -= 1
    EndIf
    _WinAPI_RedrawWindow($hGUI, 0, 0, 2)
    WEnd
    EndFunc ;==>Feuerwerk

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

    Func Dreieck($iWinkel, $iLaenge)
    Local $iDeg = 0.0174532925199433, $aRet[2]
    $aRet[0] = Sin($iWinkel * $iDeg) * $iLaenge
    $aRet[1] = Cos($iWinkel * $iDeg) * $iLaenge
    Return $aRet
    EndFunc ;==>Dreieck

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

    #endregion FEUERWERK

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

    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _GDIPlus_GraphicsSetClipRect
    ; Description ...: Updates the clipping region of a Graphics object to a region that is the combination of itself and a rectangle
    ; Syntax.........: _GDIPlus_GraphicsSetClipRect($hGraphics, $nX, $nY, $nWidth, $nHeight[, $iCombineMode = 0])
    ; Parameters ....: $hGraphics - Pointer to a Graphics object
    ; $nX - X coordinate of the upper-left corner of the rectangle
    ; $nY - Y coordinate of the upper-left corner of the rectangle
    ; $nWidth - Width of the rectangle
    ; $nHeight - Height of the rectangle
    ; $iCombineMode - Regions combination mode:
    ; |0 - The existing region is replaced by the new region
    ; |1 - The existing region is replaced by the intersection of itself and the new region
    ; |2 - The existing region is replaced by the union of itself and the new region
    ; |3 - The existing region is replaced by the result of performing an XOR on the two regions
    ; |4 - The existing region is replaced by the portion of itself that is outside of the new region
    ; |5 - The existing region is replaced by the portion of the new region that is outside of the existing region
    ; Return values .: Success - True
    ; Failure - False and either:
    ; |@error and @extended are set if DllCall failed
    ; |$GDIP_STATUS contains a non zero value specifying the error code
    ; Remarks .......: None
    ; Related .......: None
    ; Link ..........; @@MsdnLink@@ GdipSetClipRect
    ; Example .......; No
    ; ===============================================================================================================================
    Func _GDIPlus_GraphicsSetClipRect($hGraphics, $nX, $nY, $nWidth, $nHeight, $iCombineMode = 0)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipSetClipRect", "hwnd", $hGraphics, "float", $nX, "float", $nY, "float", $nWidth, "float", $nHeight, "int", $iCombineMode)

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

    If @error Then Return SetError(@error, @extended, False)
    $GDIP_STATUS = $aResult[0]
    Return $aResult[0] = 0
    EndFunc ;==>_GDIPlus_GraphicsSetClipRect

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

    #region WinAPIEx.au3 functions
    Func _WinAPI_GetParentProcess($PID = 0)
    If Not $PID Then
    $PID = _WinAPI_GetCurrentProcessID()
    If Not $PID Then Return SetError(1, 0, 0)
    EndIf

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

    Local $hSnapshot = DllCall('kernel32.dll', 'ptr', 'CreateToolhelp32Snapshot', 'dword', 0x00000002, 'dword', 0)
    If (@error) Or (Not $hSnapshot[0]) Then Return SetError(1, 0, 0)

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

    Local $tPROCESSENTRY32 = DllStructCreate('dword Size;dword Usage;dword ProcessID;ulong_ptr DefaultHeapID;dword ModuleID;dword Threads;dword ParentProcessID;long PriClassBase;dword Flags;wchar ExeFile[260]')
    Local $pPROCESSENTRY32 = DllStructGetPtr($tPROCESSENTRY32)
    Local $Ret, $Result = 0

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

    $hSnapshot = $hSnapshot[0]
    DllStructSetData($tPROCESSENTRY32, 'Size', DllStructGetSize($tPROCESSENTRY32))
    $Ret = DllCall('kernel32.dll', 'int', 'Process32FirstW', 'ptr', $hSnapshot, 'ptr', $pPROCESSENTRY32)
    While (Not @error) And ($Ret[0])
    If DllStructGetData($tPROCESSENTRY32, 'ProcessID') = $PID Then
    $Result = DllStructGetData($tPROCESSENTRY32, 'ParentProcessID')
    ExitLoop
    EndIf
    $Ret = DllCall('kernel32.dll', 'int', 'Process32NextW', 'ptr', $hSnapshot, 'ptr', $pPROCESSENTRY32)
    WEnd
    _WinAPI_CloseHandle($hSnapshot)
    If Not $Result Then Return SetError(1, 0, 0)
    Return $Result
    EndFunc ;==>_WinAPI_GetParentProcess

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

    Func _WinAPI_EnumChildProcess($PID = 0)
    If Not $PID Then
    $PID = _WinAPI_GetCurrentProcessID()
    If Not $PID Then Return SetError(1, 0, 0)
    EndIf

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

    Local $hSnapshot = DllCall('kernel32.dll', 'ptr', 'CreateToolhelp32Snapshot', 'dword', 0x00000002, 'dword', 0)
    If (@error) Or (Not $hSnapshot[0]) Then Return SetError(1, 0, 0)

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

    Local $tPROCESSENTRY32 = DllStructCreate('dword Size;dword Usage;dword ProcessID;ulong_ptr DefaultHeapID;dword ModuleID;dword Threads;dword ParentProcessID;long PriClassBase;dword Flags;wchar ExeFile[260]')
    Local $pPROCESSENTRY32 = DllStructGetPtr($tPROCESSENTRY32)
    Local $Ret, $Result[101][2] = [[0]]

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

    $hSnapshot = $hSnapshot[0]
    DllStructSetData($tPROCESSENTRY32, 'Size', DllStructGetSize($tPROCESSENTRY32))
    $Ret = DllCall('kernel32.dll', 'int', 'Process32FirstW', 'ptr', $hSnapshot, 'ptr', $pPROCESSENTRY32)
    While (Not @error) And ($Ret[0])
    If DllStructGetData($tPROCESSENTRY32, 'ParentProcessID') = $PID Then
    $Result[0][0] += 1
    If $Result[0][0] > UBound($Result) - 1 Then
    ReDim $Result[$Result[0][0] + 100][2]
    EndIf
    $Result[$Result[0][0]][0] = DllStructGetData($tPROCESSENTRY32, 'ProcessID')
    $Result[$Result[0][0]][1] = DllStructGetData($tPROCESSENTRY32, 'ExeFile')
    EndIf
    $Ret = DllCall('kernel32.dll', 'int', 'Process32NextW', 'ptr', $hSnapshot, 'ptr', $pPROCESSENTRY32)
    WEnd
    _WinAPI_CloseHandle($hSnapshot)
    If $Result[0][0] Then
    ReDim $Result[$Result[0][0] + 1][2]
    Else
    Return SetError(1, 0, 0)
    EndIf
    Return $Result
    EndFunc ;==>_WinAPI_EnumChildProcess
    #endregion
    #endregion BILDSCHIRMSCHOHNER

    [/autoit]

    Hier noch ein Link: Beispiel für einen Bildschirmschoner

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • UEZ

    Vielen Dank genau das hatte ich die ganze zeit versucht und nicht geschafft. Danke dir jetzt schau ich mir mal den Code genau an um da des zu verstehen versuchen :)

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin