Witziges kleines Skript - winzige Auflösung simulieren

  • Keine Gute Umsetzung einer nichtmal schlechten Idee.

    Alles was Grafik angeht sollte man mittels GDI(+) bewerkstelligen.

    So erzeugst du unmengen GUI´s die das ganze System lahm legen.
    Ich hatte nach dem Beenden das Problem, dass es eine Weile gedauert hat, bis Alle Guis geschlossen werden konnten.

    Mache dich mit der Macht vertraut junger Padawan :P
    Versuchs mal mit einfachen GDI+ Sachen.
    Damit kann man nach kurzer Lernphase schon tolle Sachen mit herstellen.

    lg

  • Die Idee ist wie gesagt, nicht schlecht. Ich werde das mal versuchen mit GDI+ zu gestalten, oder mit nem screenshot, der dann ausgelesen wird, statt mit pixelgetcolor und so, weil das nicht besonders schön und performant ist ;-). Auch wenn GDI+ relativ lahm ist, ist es immer besser als 99999 GUIs zu machen. Gebt mir 1-2Stunden. Eventuel wirds auch erst morgen^^

    //Edit
    Ich stehe vor einem kleinem problem mit bitmapsetpixel, ansonsten aber alles fertig ;)

    //Edit2
    Problem gelöst!
    Das fertige Script:
    Berechnung und so alles im RAM!

    Spoiler anzeigen
    [autoit]


    #include <Screencapture.au3>
    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>
    #include <GuiConstantsEx.au3>
    #include <GDIP.au3>
    #include <WinAPI.au3>

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

    $width = 400
    $height = 400

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

    _GDIPlus_Startup()

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

    $Bitmap = _ScreenCapture_Capture("", 0, 0, @DesktopWidth, @DesktopHeight)
    $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($Bitmap)
    $hDC = _WinAPI_GetDC(0)
    $BMP = _WinAPI_CreateCompatibleBitmap($hDC, $width, $height)
    $hBMP = _GDIPlus_BitmapCreateFromHBITMAP($BMP)
    Global $x1 = 0, $x2 = 0, $y1 = 0, $y2 = 0
    $progress = ProgressOn("Berechne", "Daten werden berechnet")
    $hwnd = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, BitOR($WS_MAXIMIZE, $WS_POPUP))
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    For $x1 = 0 to @DesktopWidth step @DesktopWidth/$width
    For $y1 = 0 to @DesktopHeight step @DesktopHeight/$height
    _GDIPlus_BitmapSetPixel($hBMP, $x2, $y2, "0xFF" & String(hex(_GDIPlus_BitmapGetPixel($hBitmap, $x1, $y1),6)))
    $y2 += 1
    Next
    $x2 += 1
    $y2 = 0
    $percentage = ($x1)/(@DesktopWidth)*100
    ProgressSet($percentage)
    Next
    ProgressOff()
    GUISetState()
    Do
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBMP, 0, 0, @DesktopWidth, @DesktopHeight)
    Sleep(100)
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    _GDIPlus_Shutdown()

    [/autoit]
    Meine Werke


    EasyScreen (teilweise Crocoframe): <EasyScreen>
    Spotify2Title: <Spotify2Title> (zur Info, dies ist KEIN Spotify-Downloader! Wer das dachte... :rofl: sowas gibts hier nicht :thumbdown: )

    3 Mal editiert, zuletzt von Xyron (21. Mai 2011 um 11:45)