![]()
Ich kann da noch viel mehr mitmachen =)
Guck mal hier als Strich:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <timers.au3>
HotKeySet("{ESC}", "_ende")
[/autoit] [autoit][/autoit] [autoit]Global $ballpos1=@DesktopWidth/2
Global $ballpos2=@DesktopHeight/2
Global $BewegungSenkrecht=Random(5, 7, 1)
Global $BewegungWagrecht=Random(5, 7, 1)
Global $Speed=10
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]Global $hGui = GUICreate("Rahmen", @DesktopWidth, @DesktopHeight, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
GUISetBkColor(0xABCDEF)
_WinAPI_SetLayeredWindowAttributes($hGui, 0xABCDEF, 255)
GUISetState()
Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
$Pinsel = _GDIPlus_PenCreate(0xFF0000FF, 20)
Global $vanish = _GDIPlus_PenCreate(0xFF000000, 20)
$t1 = _Timer_SetTimer(0, 300, "move")
$begin=TimerInit()
While 1
Sleep(40)
WEnd
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_BrushDispose($Pinsel)
_GDIPlus_BrushDispose($vanish)
Func _ende()
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_ende
Func move($a, $b, $c, $d)
_GDIPlus_GraphicsDrawLine ( $hGraphic, $ballpos1, $ballpos2, $ballpos1+50, $ballpos2+50, $vanish )
$ballpos1+=$BewegungWagrecht * $Speed
$ballpos2+=$BewegungSenkrecht * $Speed
_GDIPlus_GraphicsDrawLine ( $hGraphic, $ballpos1, $ballpos2, $ballpos1+50, $ballpos2+50, $Pinsel )
If $ballpos1 >= @DesktopWidth - 80 And $BewegungWagrecht > 0 Then $BewegungWagrecht = Random(-7, -5, 1)
If $ballpos1 < 10 And $BewegungWagrecht < 0 Then $BewegungWagrecht = Random(5, 7, 1)
If $ballpos2 >= @DesktopHeight - 95 And $BewegungSenkrecht > 0 Then $BewegungSenkrecht = Random(-7, -5, 1)
If $ballpos2 < 30 And $BewegungSenkrecht < 0 Then $BewegungSenkrecht = Random(5, 7, 1)
If _GDIPlus_PenGetColor ( $vanish )=0xFF000000 Then
_GDIPlus_PenSetColor ( $vanish, 0xFFFFFF00 )
ElseIf _GDIPlus_PenGetColor ( $vanish )=0xFFFFFF00 Then
_GDIPlus_PenSetColor ( $vanish, 0xFFFF0000 )
ElseIf _GDIPlus_PenGetColor ( $vanish )=0xFFFF0000 Then
_GDIPlus_PenSetColor ( $vanish, 0xFF00FF00 )
ElseIf _GDIPlus_PenGetColor ( $vanish )=0xFF00FF00 Then
_GDIPlus_PenSetColor ( $vanish, 0xFF000000 )
EndIf
$dif=TimerDiff( $begin )
If $dif>12000 Then
_GDIPlus_GraphicsClear ( $hGraphic, 0xFFABCDEF )
$begin=TimerInit()
EndIf
EndFunc ;==>move
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