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

Beiträge von UEZ

  • Liniendiagramm erstellen

    • UEZ
    • 21. Januar 2013 um 22:15

    Schaue mal hier rein: http://www.autoitscript.com/forum/topic/10…gdi-line-graphs

    Gruß,
    UEZ

  • Hexrechnung

    • UEZ
    • 19. Januar 2013 um 13:18

    Klar kannst du in Hex rechnen:

    [autoit]


    $ADDR_Base = 0x123ABC00
    $ADDR_Offset = 0x2BC12

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

    $A = $ADDR_Base + $ADDR_Offset
    msgbox (0,"$A","0x"&Hex($A,8)) ; -> 123D7812

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

    $B = $A + 0x54
    msgbox (0,"$B","0x"&Hex($B,8)) ; -> 00000000

    [/autoit]

    Hex() dient nur zum Anzeigen der Hex Werte!

    Gruß,
    UEZ

  • Happy Birthday Oscar

    • UEZ
    • 18. Januar 2013 um 23:36

    Ich schließe mich auch an und wünsche dir alles Gute zum Geburtstag!

    Gruß,
    UEZ

  • Flackerndes GUI bei Aktualisierung der Label

    • UEZ
    • 18. Januar 2013 um 11:18

    Standard Control sollte flackern und Graphic Control nicht!

    Der Rest ist Geschmacksache!

    Greenhorn: leider hilft $WS_EX_COMPOSITED nicht...

    Gruß,
    UEZ

  • Flackerndes GUI bei Aktualisierung der Label

    • UEZ
    • 17. Januar 2013 um 21:06

    Hier noch eine Version:

    Spoiler anzeigen
    [autoit]


    #include <GDIPlus.au3>
    #include <GUIConstantsEx.au3>
    _GDIPlus_Startup()
    $hGUI = GUICreate("Test", 300, 150)
    $iLabel = GUICtrlCreateLabel("Standard Control: 0000000000", 10, 10, 290, 50)
    GUICtrlSetFont(-1, 11, 400, 0, "Arial")
    $iPic = GUICtrlCreatePic("", 10, 80, 250, 50)
    GUISetState()
    _GDIPlus_DrwTxt2Ctrl($hGUI, $iPic, "Graphic Control: 0000000000")

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

    Do
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    GUIDelete()
    _GDIPlus_Shutdown()
    Exit
    EndSwitch
    GUICtrlSetData($iLabel, "Standard Control: " & Random(1111111111, 99999999999, 1))
    _GDIPlus_DrwTxt2Ctrl($hGUI, $iPic, "Graphic Control: " & Random(1111111111, 99999999999, 1))
    Until False

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

    Func _GDIPlus_DrwTxt2Ctrl($hWnd, $iCtrl, $sText, $iFontSize = 11, $sFont = "Arial", $iFontColor = 0xFF000000, $iBgColor = 0xFFF0F0F0, $bAntiAlias = False) ;coded by UEZ build 2013-01-17
    Local $hCtrl = GUICtrlGetHandle($iCtrl)
    Local $aSize = ControlGetPos($hWnd, "", $iCtrl)
    Local $aResult = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $aSize[2], "int", $aSize[3], "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
    Local $hBitmap = $aResult[6]
    Local $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsClear($hCtxt, $iBgColor)
    If $bAntiAlias Then
    _GDIPlus_GraphicsSetSmoothingMode($hCtxt, 2)
    DllCall($ghGDIPDll, "uint", "GdipSetTextRenderingHint", "handle", $hCtxt, "int", 4)
    EndIf
    Local $hBrush = _GDIPlus_BrushCreateSolid($iFontColor)
    Local $hFormat = _GDIPlus_StringFormatCreate()
    Local $hFamily = _GDIPlus_FontFamilyCreate($sFont)
    Local $hFont = _GDIPlus_FontCreate($hFamily, $iFontSize)
    Local $tLayout = _GDIPlus_RectFCreate(0, 0, $aSize[2], $aSize[3])
    _GDIPlus_GraphicsDrawStringEx($hCtxt, $sText, $hFont, $tLayout, $hFormat, $hBrush)
    _GDIPlus_FontDispose($hFont)
    _GDIPlus_FontFamilyDispose($hFamily)
    _GDIPlus_StringFormatDispose($hFormat)
    _GDIPlus_BrushDispose($hBrush)
    _GDIPlus_GraphicsDispose($hCtxt)
    Local $hHBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
    _GDIPlus_BitmapDispose($hBitmap)
    Local $hB = GUICtrlSendMsg($iCtrl, 0x0172, 0, $hHBitmap)
    If $hB Then _WinAPI_DeleteObject($hB)
    _WinAPI_DeleteObject($hHBitmap)
    Return 1
    EndFunc

    [/autoit]

    Gruß,
    UEZ

  • Extract File by C0dex

    • UEZ
    • 10. Januar 2013 um 09:01

    Spanish Forum -> http://www.emesn.com/autoitforum/index.php

    Veo que ya estás registrado allí (C0dex). 8|

    Saludo,
    UEZ

  • Musik-Visualizer mit optimiertem ASM

    • UEZ
    • 8. Januar 2013 um 21:35

    Danke für dem ASM Kurs!

    Gruß,
    UEZ

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • UEZ
    • 6. Januar 2013 um 14:19
    Zitat von Andy

    hmm, die Verwendung von Windows-Standard-Funktionen funktioniert nicht bei Win8? Btw. was funktioniert nicht bzw. was ist der Fehler?
    Bestätigt mein bisheriges Vorgehen, immer nur jede 2. BS-Version zu verwenden.

    Auf der physikalischen Kiste sehe ich nur ein graues Bild, sonst nichts. In der VM funzt allerdings der Effekt; komisch! ?( Scheint vielleicht an meiner Nvidia Gfx Karte zu liegen...

    Im Großen und Ganzen laufen alle die von mir getesteten Skripte, bis auf einige Kleinigkeiten. Win8 ist sehr gewohnheitsbedürftig und hat micht nicht vom Hocker gerissen, aber schnell im Booten.
    Mit der Zeit wird sich herausstellen, ob Win8 was taugt oder nicht.

    Gruß,
    UEZ

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • UEZ
    • 6. Januar 2013 um 00:48

    Ich liebe den Aero Effekt. Leider gibt's den nicht mehr unter Win8! ;(

    Apropos Win8: das Skript läuft nicht unter Win8 auf meiner physikalischen Kiste!

    Gruß,
    UEZ

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • UEZ
    • 5. Januar 2013 um 20:13

    Aha, jetzt sieht man den Effekt! :D

    Alternativ kann man auch Aero abschalten:

    Spoiler anzeigen
    [autoit]


    #include <ScreenCapture.au3>;....................

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

    Global Const $hDwmApiDll = DllOpen("dwmapi.dll")
    Global $sChkAero = DllStructCreate("int;")
    DllCall($hDwmApiDll, "int", "DwmIsCompositionEnabled", "ptr", DllStructGetPtr($sChkAero))
    Global $aero = DllStructGetData($sChkAero, 1)
    If $aero Then DllCall($hDwmApiDll, "int", "DwmEnableComposition", "uint", False)
    Sleep(500)
    Local $1=Opt("GUIOnEventMode",1),$c=b(0),$a= _;..
    @DesktopWidth,$b=@DesktopHeight,$3= _;...........
    _ScreenCapture_Capture("m.bmp",0,0,-1,-1, _;.....
    False),$d = GUICreate(0,$a,$b,0,0,0x80000000), _;
    $4=GUISetOnEvent(-3,"a"),$5=GUICtrlCreatePic( _;.
    "m.bmp",0,0,$a,$b),$e=b($d),$6=GUISetState();....
    Local $f,$g,$h,$i,$7
    While 1;.........................................
    $f=($a-128)*random(0,1)
    $g=($b-128)*random(0,1)
    $h=2*random(0,1)-1
    $i=2*random(0,1) -1
    $7=DllCall("gdi32.dll","bool","BitBlt","handle",$e,"int",$f+$h,"int",$g+$i,"int",128,"int",128,"handle",$c,"int",$f,"int",$g,"dword",0x00CC0020);....................................
    ;~ $7 = DllCall("gdi32.dll","bool","BitBlt","handle",$e,"int",int($f + $h), "int",int($g + $i),"int",128, "int",128,"handle",$e,"int",int($f),"int",int($g), "dword", 0x00CC0020) ;Andy's Variante
    WEnd;............................................
    Local $8=DllCall("user32.dll","int","ReleaseDC" _
    ,"hwnd",$d,"handle",$e),$9=DllCall("user32.dll" _
    ,"int","ReleaseDC","hwnd",0,"handle",$c);........
    Func a();........................................
    If $aero Then DllCall($hDwmApiDll, "int", "DwmEnableComposition", "uint", True)
    Exit;............................................
    EndFunc;.........................................
    Func b($j);......................................
    $k=DllCall("user32.dll","handle","GetDC","hwnd" _
    ,$j);............................................
    Return $k[0];....................................
    EndFunc;.........................................

    [/autoit]

    Gruß,
    UEZ

  • REGEX-(Mist)

    • UEZ
    • 2. Januar 2013 um 23:39

    Bin kein RegEx Guru, aber hier eine Möglichkeit:

    [autoit]


    $sDatei1 = "Test123ABC134_1.jpg"
    $sDatei2 = "123_456_789.jpg"

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

    ConsoleWrite(StringRegExp($sDatei1, "(?i)[^_\d\.jpg]", 0) & @LF)
    ConsoleWrite(StringRegExp($sDatei2, "(?i)[^_\d\.jpg]", 0) & @LF)

    [/autoit]

    Gruß,
    UEZ

  • REGEX-(Mist)

    • UEZ
    • 2. Januar 2013 um 23:12

    D.h., wenn im Namen kein Buchstabe vorkommt, dann soll die Datei in den entsprechenden Ordner verschoben werden, ansonsten in einen anderen Ordner.

    Ferner kommen die Buchstaben nur am Anfang vor.

    Richtig?

    Gruß,
    UEZ

  • Coole Bilder berechnen (Domain coloring / complex numbers) (Assembler)

    • UEZ
    • 27. Dezember 2012 um 01:15

    Very impressiv Andy, meine Eukalyptus :D

    Das hast du also zu Weihnachten gemacht! ;)

    Starkes Stück arbeit, vor allem der ASM Teil ist der Hammer! Cool wäre noch eine Art Animation...


    Ich habe da auch eine Vision als Intro für meine Watermark App, aber ich habe keine Ahnung, ob ich die Vision in Bits und Bytes bringen kann... ?(

    LG,
    UEZ

  • QR-Code Dll - Übergabe Errorlevel-Parameter, Aufruf: DestroyBuffer() ?

    • UEZ
    • 22. Dezember 2012 um 23:28

    Diese Version habe ich benutzt: http://users.telenet.be/ws36637/download/quricol.zip

    Mit diesem Code funzt es unter X64:

    [autoit]


    #AutoIt3Wrapper_UseX64=y
    Global $iMargin = 4, $iPixelSize = 2
    $sPath = @ScriptDir & "\"
    $_sImageName = "Test"
    $_sText = "Test"

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

    $a = DllCall("quricol64.dll", "none", "GenerateBMPW", "wstr", $sPath & $_sImageName & ".bmp", "str", $_sText, "int", $iMargin, "int", $iPixelSize) ; == funktioniert
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $a = ' & $a & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    ; == TErrorCorretion
    Global Enum $QR_ECLEVEL_L = 0, $QR_ECLEVEL_M, $QR_ECLEVEL_Q, $QR_ECLEVEL_H
    $b = DllCall("quricol64.dll", "none", "GenerateBMPW", "wstr", $sPath & $_sImageName & "2.bmp", "str", $_sText, "int", $iMargin, "int", $iPixelSize, "int", $QR_ECLEVEL_Q) ; == funktioniert nicht
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $b = ' & $b & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    ;~ DllCall("quricol32.dll", "none", "DestroyBuffer", "ptr", $iAddress) ; <== CRASH!!!

    [/autoit]

    Es werden 2 BMPs erstellt, die unterschiedlich sind.

    Keine Ahnung, wann man DestroyBuffer benutzen muss. Vielleicht ist dieser Link nützlich: http://delphi32.blogspot.de/2011/11/qurico…or-library.html

    Gruß,
    UEZ

  • Bildschirmschonereinstellungsfenster kleines Vorschaufenster

    • UEZ
    • 19. Dezember 2012 um 23:07

    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

  • GDI+ DrawImageRectRect Zu viele Pixel

    • UEZ
    • 10. Dezember 2012 um 22:25

    Probiere mal dies aus:

    [autoit]


    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()

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

    $hBitmap_Map = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\FFIOriginsMap9.png")
    $iW = 20
    $iH = 20
    $hBitmap_area = _GDIPlus_BitmapCloneArea($hBitmap_Map, 0, 0, 16, 16)
    $hBitmap_20x20 = DllCall($ghGDIPDll, "uint", "GdipCreateBitmapFromScan0", "int", $iW, "int", $iH, "int", 0, "int", 0x0026200A, "ptr", 0, "int*", 0)
    $hBitmap_20x20 = $hBitmap_20x20[6]
    $hCtxt = _GDIPlus_ImageGetGraphicsContext($hBitmap_20x20)
    _GDIPlus_GraphicsDrawImageRect($hCtxt, $hBitmap_area, 0, 0, $iW, $iH)
    _GDIPlus_ImageSaveToFile($hBitmap_20x20, @ScriptDir & "\New_20x20.bmp")
    _GDIPlus_GraphicsDispose($hCtxt)
    _GDIPlus_BitmapDispose($hBitmap_20x20)
    _GDIPlus_BitmapDispose($hBitmap_Map)
    _GDIPlus_BitmapDispose($hBitmap_area)

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

    _GDIPlus_Shutdown()
    ShellExecute(@ScriptDir & "\New_20x20.bmp")
    Exit

    [/autoit]

    Habe die Beispiele oben noch nicht angesehen!

    Gruß,
    UEZ

  • OpenCl goes AutoIt Update 31.Dezember 2016

    • UEZ
    • 9. Dezember 2012 um 15:13

    Bitte auch die Überschrift ändern. ;)

    Gruß,
    UEZ

  • Alles gute Sprenger!

    • UEZ
    • 9. Dezember 2012 um 13:51

    Happy Birthday und alles Gute!

    Gruß,
    UEZ

  • Pee wird 24 und Funkey 32

    • UEZ
    • 4. Dezember 2012 um 09:08

    Ich schließe mich meinen Vorredner an und wünsche euch beiden alles Gute, viel Gesundheit und viel Erfolg in eurem Leben.

    Gruß,
    UEZ

  • GDI+ Spielerei - Feuerwerk

    • UEZ
    • 30. November 2012 um 20:08

    Sieht echt cooooooll aus! 8o

    Freue mich auf weitere kreative Werke von dir :D

    Gruß,
    UEZ

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™