• Hier mal was wieder mit GDI+: Zoomer

    Spoiler anzeigen
    [autoit]


    ;Coded by UEZ 2010 Build 2010-08-31
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Run_Obfuscator=y
    #Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
    #AutoIt3Wrapper_Run_After=del /f /q "Zoomer_Obfuscated.au3"
    #AutoIt3Wrapper_Run_After=upx.exe --ultra-brute "%out%"
    ;~ #AutoIt3Wrapper_Run_After=upx.exe --best "%out%"
    #include <GDIP.au3>
    #include <GUIConstantsEx.au3>

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

    Opt("MustDeclareVars", 1)
    Opt("GUIOnEventMode", 1)
    Opt("MouseCoordMode", 1)

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

    Local $hGUI, $hGraphics, $hBackbuffer, $hBitmap, $hBuffer, $hContext
    Local $W = 800, $H = $W
    Local $W2 = $W / 2, $H2 = $H / 2
    ; Initialize GDI+
    _GDIPlus_Startup()

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

    Local $GUI_title = "GDI+ Zoomer by UEZ 2010"
    $hGUI = GUICreate($GUI_title, $W, $H)
    GUISetBkColor(0x000000, $hGUI)
    GUISetState()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($W, $H, $hGraphics)
    $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    ; Using antialiasing
    _GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)

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

    ; Create a Brush object
    Local $hBrush = _GDIPlus_BrushCreateSolid()
    Local $hPen = _GDIPlus_PenCreate(0xA0000000, 2)

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

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    Local $p = 40
    Local $k = 40
    Local $ps = $p / 10
    Local $t = 0
    Local $min = 8
    Local $mouse_sense = 5
    Local $i, $mpos, $fps, $cx, $cy, $pp

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

    $hBuffer = _GDIPlus_BitmapCreateFromScan0($W, $H)
    $hContext = _GDIPlus_ImageGetGraphicsContext($hBuffer)
    _GDIPlus_GraphicsTranslateTransform($hContext, -23, -23)
    _GDIPlus_GraphicsScaleTransform($hContext, 1.05, 1.05)
    _GDIPlus_GraphicsSetInterpolationMode($hContext, 0)

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

    MouseMove(@DesktopWidth / 2, @DesktopHeight / 2, 20)

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

    WinSetTitle($hGUI, "", $GUI_title & " / FPS: 0")

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

    AdlibRegister("FPS", 1000)
    Local $timer = TimerInit()
    While Sleep(20)
    _GDIPlus_GraphicsDrawImageRect($hBackbuffer, $hBuffer, 0, 0, $W, $H)

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

    $mpos = MouseGetPos()
    If $mpos[0] / $mouse_sense > $min Then $p = $mpos[0] / $mouse_sense
    If $mpos[1] / $mouse_sense > $min Then $k = $mpos[1] / $mouse_sense

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

    For $i = 0 To 4
    _GDIPlus_BrushSetSolidColor($hBrush, "0x80FFFFFF")
    _GDIPlus_PenSetWidth($hPen, $ps)
    $pp = $p / 2
    $cx = $W2 - $pp + Sin($t / 15 + $i * 1.3) * $k
    $cy = $W2 - $pp + Cos($t / 23 - $i * 2.3) * $k
    _GDIPlus_GraphicsDrawEllipse($hBackbuffer, $cx , $cy, $p, $p, $hPen)
    _GDIPlus_GraphicsFillEllipse($hBackbuffer, $cx , $cy, $p, $p, $hBrush)
    Next
    $t += 3
    If TimerDiff($timer) > Random(5000, 15000, 1) Then
    _GDIPlus_GraphicsDrawString($hBackbuffer, "Coded by UEZ 2010", Random($W * 0.7, $W * 0.9, 1), Random($H * 0.33, $H * 0.66, 1), "Arial", 40, 1)
    $timer = TimerInit()
    EndIf

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

    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $W, $H)
    _GDIPlus_GraphicsDrawImageRect($hContext, $hBitmap, 0, 0, $W, $H)

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

    $fps += 1

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

    WEnd

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

    Func FPS()
    WinSetTitle($hGUI, "", $GUI_title & " / FPS: " & $fps)
    $fps = 0
    EndFunc

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

    Func _Exit()
    AdlibUnRegister("FPS")
    ; Clean up
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_BitmapDispose($hBuffer)
    _GDIPlus_GraphicsDispose($hContext)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hBackbuffer)
    _GDIPlus_GraphicsDispose($hGraphics)

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

    ; Uninitialize GDI+
    _GDIPlus_Shutdown()
    GUIDelete($hGUI)
    Exit
    EndFunc

    [/autoit]

    Die GDIP.au3 wird dazu benötigt!

    Gruß,
    UEZ

  • Wow, so wenig code und trotzdem so ein großer Effekt.
    Das man so was gutes und effektives in GDI+ mit minimaler größe erstellen kann,
    kannst nur du beweisen. :thumbup:

    Meine Projekte:
    ClipBoard Manager (beendet)
    Gutes ClipBoard Verwaltungs Programm mit nützlichen Funktionen.

    HTML Creator (beendet)
    Nützliches Tool um schnell ein eigenes HTML Dokument zu erstellen.

  • Naja, es reagiert auf die Position der Maus, wenn du mit dem Mauszeiger die Bildschirmränder abfährst, siehst du ja das Ergebnis...

    Zitat

    ist das irgendwie nutzbar zu machen sagen wir das es z.b. auf audio reagiert?

    wieso nicht, ersetze die Mauspositionen mit den Pegeln eines Audio-Outputs, und das wars...

    Zitat

    oder ist das nur n just4fun script

    Nein, damit kann man die Weltherrschaft erlangen....nimmst du Drogen?

  • servus, sieht echt gut aus. ist das irgendwie nutzbar zu machen sagen wir das es z.b. auf audio reagiert? oder ist das nur n just4fun script?

    Der Fantasie sind keine Grenzen gesetzt! Natürlich kannst du das Skript dahin gehend verändern, so dass es auch auf Audio reagiert, z.B. anstelle der Kugeln ein Frequenzband.

    Ja, es ist ein Just4Fun Skript, was sonst? 8|

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯