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

Beiträge von casi4712

  • Leidiges Flickerproblem

    • casi4712
    • 16. Januar 2023 um 19:18

    @VE das ist Dein Eindruck, hat aber nichts mit der Realtät zu tun, oder woher weisst Du wiviele Stunden ich mich mit einem Teilproblem befasse, bevor ich hier zur Tastatur greife? ;) Wenn du richtig glesen hast, dann weisst du dass mir die Lösung mit GDIPlus durchaus schon bekannt ist, leider war es mir nicht möglich hieraus eine etwas elagantere Lösung zu fabrizieren, die auch bei der Nutzung von mehreren Labels, entsprechend wiederverwertbar ist ohne hier jedesmal 100 Zeilen extra verbraten zu müssen, dass bläht die Scripte dann nur unnötig auf. Vielleicht hatte ich das nicht deutlich genug betont, dann bitte ich um Entschuldigung.

    So und jetzt habe ich mir auch noch mal deinen Beitrag @Ve in dem anderen Posting angeschaut. Dies ist für sich gesehenein schönes Beispiel, hat aber mit meiner AdLibRegister Funktion, in der nur fallweise was angezeigt wird nicht viel zu tun.

    Einen schönen Abend noch

    lg

  • ComSpec string will nicht

    • casi4712
    • 16. Januar 2023 um 19:08

    Hallo allerseits, ich versuche jetzt schin seit einiger Zeit folgenden Run Befehl hinzubekommen, aber leider macht er nichts, an der Klammer wird es ja wohl nicht liegen, dieses hier funktioniert ja auch:

    run(@ComSpec & ' /k (SQLCMD -S localhost\DB -v path="' & $savepath & '" -U sa -Ppass -i "C:\Users\Administrator\Downloads\BACK\DBscripts\SQL-SicherungALL_DB.sql") & EXIT', "", @SW_SHOW)

    AutoIt
    DBBACKUP()
    
    Func DBBACKUP()
    $savepath = @DesktopDir & "\DB-Sicherung\mysql"
         If FileExists($savepath) Then
         Else
           DirCreate ( $savepath )
         EndIf
    run(@ComSpec & ' /c (mysql.exe -uroot -ppass -s -N -e "SHOW DATABASES" | for /F "usebackq" %D in (`findstr /V "information_schema performance_schema"`) do mysqldump.exe %D -uroot -ppass --default-character-set=utf8 > "' & $savepath & '"\%D.sql") & EXIT', "", @SW_SHOW)
    EndFunc     

    Für sachdienliche Hinweise wäre ich mehr als dankbar,


    schönen Abend noch und Danke schon mal

  • Leidiges Flickerproblem

    • casi4712
    • 14. Januar 2023 um 16:44

    So ich habe das ganze noch mal auf ein Minimum reduziert, ich hatte das Problem zunächst zurückgestellt, da ich die meisten Label auch nur nach längerer Zeit aktualisiere, ist es mir vielleicht auch nicht mehr aufgegfallen, aber in diesem Bespiel sollte es schon häufiger sein, Ich denke das man das flackern der warnmeldung auf jeden Fall sehen sollte, und noch mal an@VE, ja ich hatte Deine Vorschläge auch reingebracht.

    Oscar , na schön dass nicht nur mir das mit dem Geflacker auffällt, Autoit kann doch ne ganze Menge, ich bin immer noch fasziniert von den Möglichkeiten, aber wieso ist es nicht möglich ein Label völlig transparent zu schalten, das erschliest sich mir nicht ganz. Übrigens sehr gelungen was du da gezaubert hast

    AutoIt
    ; Script Start - Add your code below here
    
    ; includes ---------------------------------------------------------------------
    #include-once
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <MemoryConstants.au3>
    FileInstall("C:\Users\user1\pictures\bg\Sands.jpg", "C:\Windows\Temp\hg.bmp", 1)
    
    
    ; opt --------------------------------------------------------------------------
    Opt('MustDeclareVars', 1)
    
    ;declaration ------------------------------------------------------------------
    ;GUI Variables
    
    Global $ARRAY_COLOR_TOP_MIN[3] = [36, 65, 142]
    Global $ARRAY_COLOR_TOP_MAX[3] = [11, 42, 122]
    Global $RBOX_EVENT_CLOSE  = 1
    Global $ROUNDES = 20, $LastHwnd = 0
    Global $LastHwnd
    Global $GUIBKCOLOR = 0x5AA7A1
    Global $BGGlobal, $BG
    Global $RamLabel, $ramfree
    Global $PageFreeLabel, $PageFree
    Global $LabelRamknapp = " "
    
    ;AdLibRegistering--------------------------------------------------------------------------------------------------------------------------------------------
    AdlibRegister('_CheckAvlRam', 2000)
    AdlibRegister('_CheckAvlPage', 1220)
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    ; processing ---------------------------------------------------------------------------------------------------------------------------------------------------
    
    Global $hGui = RBoxCreate("Test", 840, 625)
    
    
    ; Func _ShowSite()
    ; EXIT
    ; EndFunc ;==> _ShowSite()
    
    _createLabels()
    GUICtrlSetImage($BG, 'C:\Windows\Temp\hg.bmp')
    
    
    While True
        CheckX($hGui, $RBOX_EVENT_CLOSE, "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0xA3A3A3)", "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0x555555)")
       local $gMsg = GUIGetMsg()
        Switch $gMsg
    
            Case $GUI_EVENT_CLOSE, $RBOX_EVENT_CLOSE
                GUIDelete($hGui)
                AdlibUnRegister('_CheckAvlRam')
                AdlibUnRegister('_CheckAvlPage')
                Exit
                
        EndSwitch
    
    WEnd
    
    
    Func _createLabels()
     Local $aMemStats = MemGetStats()
     
        $LabelRAMknapp = GUICtrlCreateLabel( $LabelRAMknapp, 300, 300, 120, 20); RAMWARNUNG
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 9, 800) ; bold  
    
        GUICtrlCreateLabel(" GB (Pagefile ver.)", 380, 360, 130, 20)
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 9, 800) ; bold
    
        GUICtrlCreateLabel(" GB (RAM ver.)", 380, 400, 130, 20)
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 9, 800) ; bold
    
        $PageFreeLabel = GUICtrlCreateLabel($pagefree, 350, 360, 30, 30); Page verfügbar
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 9, 800) ; bold  
         
        GUICtrlCreateLabel( Round($aMemStats[$MEM_TOTALPAGEFILE]/1024/1024, 2) & " GB (Pagefile tot.)", 350, 380, 130, 30)
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 9, 800) ; bold        
          
        $RamLabel = GUICtrlCreateLabel($ramfree,   350, 400, 30, 30, $WS_EX_COMPOSITED);Ram verfügbar
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 9, 800) ; bold  
          
        GUICtrlCreateLabel( Round($aMemStats[$MEM_TOTALPHYSRAM]/1024/1024, 2) & " GB (RAM total)", 350, 420, 130, 20)
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 9, 800) ; bold      
    EndFunc
    
    
    
    ;Functions--------------------------------------------------
    
    
    Func _CheckAvlRam()
    global $aMemStats = MemGetStats()
    global $ramfree = Round($aMemStats[$MEM_AVAILPHYSRAM]/1024/1024, 2)
        if $ramfree < 9 Then
           GUICtrlSetData($RAMLabel, $ramfree)
           GUICtrlSetData($LabelRAMknapp, "RAM wird knapp !!!")
    
          else 
           GUICtrlSetData($RAMLabel, $ramfree)
           GUICtrlSetData($LabelRAMknapp, "")
         endif  
        EndFunc
        
        
    Func _CheckAvlPage()
     global $aMemStats = MemGetStats()
     global $pagefree = Round($aMemStats[$MEM_AVAILPAGEFILE]/1024/1024, 2)
    
           GUICtrlSetData($PageFreeLabel, $pagefree)
    EndFunc
    
    
    
    
    
    
    ;GUI STYLE----------------------------------------------------------------
    Func RBoxCreate($Title, $width, $height, $left = -1, $top = -1, $show = 1)
        Local $GUI = GUICreate($Title, $width, $height, $left, $top, $WS_POPUP)
    GUICtrlSetState($hGUI, $GUI_DISABLE)
    $BG = GUICtrlCreatePic('C:\Windows\Temp\hg.bmp', 0, 25, 920, 660)
     GUICtrlCreatePic ( $BG, 0, 25, 920, 660 )
    
    
        GUICtrlSetState(-1, $GUI_DISABLE)
        GUISetBkColor($GUIBKCOLOR, $GUI)
         _GuiRoundCorners($GUI,0,0,$ROUNDES,$ROUNDES)
        $RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X', $width - 20, 3, 25, 25)
        GUICtrlSetCursor($RBOX_EVENT_CLOSE, 0)
        GUICtrlSetBkColor($RBOX_EVENT_CLOSE, -2)
        GUICtrlSetFont($RBOX_EVENT_CLOSE, 15, 800)
        GUICtrlSetColor($RBOX_EVENT_CLOSE, 0x555555)
    
        $Title &= " "
        Local $hTitle = GUICtrlCreateLabel($Title, 0, 0, $width - 20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
        GUICtrlSetFont($hTitle, 17, 400, 0, "Consolas")
        GUICtrlSetBkColor($hTitle, -2)
        Local $Graphic = GUICtrlCreateGraphic(0, 0, $width, 25)
        GUICtrlSetState($Graphic, $Gui_DISABLE)
        If $show = 1 Then GUISetState(@SW_SHOW, $GUI)
    
        Return $GUI
    EndFunc
    
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
        If Not IsArray($cGui) Then
            Return 0
        EndIf
          If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
          If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc
    
    Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
        Dim $pos, $ret, $ret2
        $pos = WinGetPos($h_win)
        $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
            If $ret[0] Then
                $ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
            If $ret2[0] Then
            Return 1
            Else
               Return 0
            EndIf
            Else
               Return 0
            EndIf
    EndFunc
    Alles anzeigen

    Die Besten Grüße, Danke und

    ein schönes Wochenende

  • Leidiges Flickerproblem

    • casi4712
    • 12. Januar 2023 um 12:59

    schaue ich mir noch mal, komischerweise sehr ich das Problen hier auf meinem Recher im Office nicht, möglicherweise hängt das mit dem verwendeten Monitor oder der Grafikkarte zusammen, ich schaue nachher noch mal.

  • Leidiges Flickerproblem

    • casi4712
    • 12. Januar 2023 um 09:47

    Lies mal in den angelsächsischen Foren, dort wird dieses Problem schon als Problem gesehen, leider habe ich bislang keine wiklich eleganten Lösungen gefunden, ich bin doch nicht bekloppt, auch wenn ich mir mittlrweile fast so vorkomme und besonders pingelich bin ich zudem auch nicht. So ich stell dass jetzt noch mal so zusammen dass man dass sieht was ich meine.

  • Leidiges Flickerproblem

    • casi4712
    • 11. Januar 2023 um 20:09

    Recht schönen Dank,

    Du hast Dir richtig Arbeit gemacht aber ich denke ich habe mich wieder falsch ausgdrückt. Na bin auch noch nicht allzu lange in Deutschland. Es geht hier nicht um das bewusste Hervorzaubern eines Labels per Buttonklick, sondern um das Erscheinen eines Labels beim Erreichen eines bestimmten Wertes, welches periodisch per AdlibRegister berrechnet wird. Ich versuchs mal mit einer Art PseudoCode, vielleicht wird des dann klar.

    Adlibaufruf, alle 1000ms

    Aldlib berrechnet $FreeRAM

    Wenn $FreeRam < 3 kein Label einblenden

    Sonst Label eiblenden "Speicher wird knapp)

    Aber halt das ganze ohne Texthintergrundgeflacker alle 1000ms

    Hoffe jeztzt ist es klar geworden


    Danke noch mal

    und schönen Abend noch

  • Leidiges Flickerproblem

    • casi4712
    • 11. Januar 2023 um 13:43

    Die crlsetdata stehen da sind natürlich überflüssig, da ich ja hier kein normales Flackerlabel erzeugen will. So ich erkläre es jetzt noch mal. Bei einem normalen Label, dass fallweise, also beim erreichen einer Bedingung eingeblendet wird, entsteht ein unschönes flackern, dass soll wohl auch normal sein. Ich möchte mit einer GDI Plus Varainte ein bedingtes Label erzeugen ohne diese Problematik. Ich hoffe ich habe mich dieses mal verständlich ausgedrückt. Ich kann mir nicht vorstellen, dass über diese Problematik hier noch nie jemand gestolpert ist.

    lg

  • Leidiges Flickerproblem

    • casi4712
    • 11. Januar 2023 um 12:01

    Danke erstmal,

    na ich weiss schon dass da einige Fehler drin sind, mir war es gelungen ein statisches Label zu erzeugen, dass ich wie folgt erzeuge:

    AutoIt
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <GDIPlus.au3>
    #include <MemoryConstants.au3>
    _GDIPlus_Startup()
    
    Const $BKGND_FILE = "C:\Users\user1\Pictures\bg\19542_en_1.jpg"
    
    Local $hImage_Bg = _GDIPlus_ImageLoadFromFile($BKGND_FILE)
    Local $hTexture = _GDIPlus_TextureCreate($hImage_Bg)
    Global $RamLabel, $ramfree
    Global $PageFreeLabel, $PageFree
    Global $LabelRamknapp = " "
    
    
    ;GUI Make
    Global $seconds = 60
    Global Const $iW = 800, $iH = 600
    $hMain = GUICreate("Timer", $iW, $iH)
    GUISetBkColor(0x2C6135)
    
    
    $lblTime = GUICtrlCreatePic("", 0, 0, $iW, $iH)
    GUICtrlSetState(-1, $GUI_DISABLE)
    _CheckAvlRam()
    GUISetState(@SW_SHOW, $hMain)
    
    AdlibRegister("_CheckAvlRam", 1000)
    
    
    ;Mainloop
    While 1
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE Then
    
            _GDIPlus_BrushDispose($hTexture)
            _GDIPlus_ImageDispose($hImage_Bg)
            _GDIPlus_Shutdown()
    
    
            GUIDelete()
            Exit
        EndIf
    
    
    WEnd
    
    
    ;AdlibRegisterFunktion
    Func _CheckAvlRam()
    
      
        
        global $aMemStats = MemGetStats()
        global $ramfree = Round($aMemStats[$MEM_AVAILPHYSRAM]/1024/1024, 2)
          if $ramfree < 5 Then
             GUICtrlSetData($RAMLabel, $ramfree)
             GUICtrlSetData($LabelRAMknapp, "RAM wird knapp !!!")
          else 
             GUICtrlSetData($RAMLabel, $ramfree)
             GUICtrlSetData($LabelRAMknapp, "")
          endif  
    
     
        Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
        Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
        _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4 + (@OSBuild > 5999))
        _GDIPlus_GraphicsSetTextRenderingHint($hGfx, 3)
        _GDIPlus_GraphicsFillRect($hGfx, 0, 0, $iW, $iH, $hTexture)
        Local Const $hBrush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
        Local Const $hFormat = _GDIPlus_StringFormatCreate()
        Local Const $hFamily = _GDIPlus_FontFamilyCreate("Arial")
        Local Const $hFont = _GDIPlus_FontCreate($hFamily, 50)
        Local Const $tLayout = _GDIPlus_RectFCreate(0, 0, $iW, $iH)
        _GDIPlus_StringFormatSetAlign($hFormat, 1)
        _GDIPlus_StringFormatSetLineAlign($hFormat, 1)
    
        _GDIPlus_GraphicsDrawStringEx($hGfx, StringFormat("Ram bald voll"), $hFont, $tLayout, $hFormat, $hBrush)
    
        _GDIPlus_BrushDispose($hBrush)
        _GDIPlus_FontFamilyDispose($hFamily)
        _GDIPlus_FontDispose($hFont)
        _GDIPlus_StringFormatDispose($hFormat)
        _GDIPlus_GraphicsDispose($hGfx)
        Local Const $hBitmap_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
        _GDIPlus_BitmapDispose($hBitmap)
        _WinAPI_DeleteObject(GUICtrlSendMsg($lblTime, 0x0172, 0x0000, $hBitmap_GDI)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
    
        _WinAPI_DeleteObject($hBitmap_GDI)
        $seconds -= 2
        If $seconds < 0 Then _End()
         _
    
    EndFunc   ;==>_CheckAvlRam
    
    
    func _End()
         AdlibUnRegister("_CheckAvlRam")
         MsgBox(262144,"Title", "Text", $WS_EX_TOPMOST)
    EndFunc
    Alles anzeigen

    aber an welcher Stelle kann ich hier eine if bedingung erzeugen, dass dieses nur in einem bestimmten Fall angezeigt wird?


    danke nochmal

    lg

  • Leidiges Flickerproblem

    • casi4712
    • 11. Januar 2023 um 10:56

    Hallo allerseits,

    ich habe nach lngerer Pause noch mal versucht mich des leidigen Flickerproblems anzunehmen, leider ohne Erfolg. Es geht darum dass nornamle Labels, sofern sie nur bei einer bestimmten Bedingung angezwigt werden, soolen, bei Refresh einen unschönen Hintergrundblock anzeigen. Dieses liegt wohl anscheinend daran, dass das Hintergrundbild über das Label rübergezeichnet wird. So richtige brauchbare Lösungen habe ich leider bisher nicht gefunden, ausser dass hier mit einem entsprechenden Redraw gearbeitet werden muss. Bei einer If Beding bekomme ich das leider nicht hin, da zeigt er mir erst gar nicht das Hintergrundbild. Vielleicht hat einer eine etwas saubere funktionsfähige Lösung. In diesem Beispiel soll ein Label eingeblendet werden, wenn der Speicher einen bestimmten Wert unterschritten hat.

    AutoIt
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <GDIPlus.au3>
    #include <MemoryConstants.au3>
    _GDIPlus_Startup()
    
    Const $BKGND_FILE = "C:\Users\user1\Pictures\bg\19542_en_1.jpg"
    
    Local $hImage_Bg = _GDIPlus_ImageLoadFromFile($BKGND_FILE)
    Local $hTexture = _GDIPlus_TextureCreate($hImage_Bg)
    Global $RamLabel, $ramfree
    Global $PageFreeLabel, $PageFree
    Global $LabelRamknapp = " "
    
    
    
    ;GUI 
    Global Const $iW = 800, $iH = 600
    $hMain = GUICreate("Test", $iW, $iH)
    GUISetBkColor(0x2C6135)
    
    
    $lblTime = GUICtrlCreatePic("", 0, 0, $iW, $iH)
    GUICtrlSetState(-1, $GUI_DISABLE)
    ;_CheckAvlRam()
    GUISetState(@SW_SHOW, $hMain)
    
    AdlibRegister("_CheckAvlRam", 1000)
    
    
    ;Mainloop
    While 1
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE Then
    
            _GDIPlus_BrushDispose($hTexture)
            _GDIPlus_ImageDispose($hImage_Bg)
            _GDIPlus_Shutdown()
    
    
            GUIDelete()
            Exit
        EndIf
    
    
    WEnd
    
    
    ;AdlibRegisterFunktion
    Func _CheckAvlRam()
    
      
        
        global $aMemStats = MemGetStats()
        global $ramfree = Round($aMemStats[$MEM_AVAILPHYSRAM]/1024/1024, 2)
          if $ramfree < 8 Then
             _showLabel()
              
          else 
          
        
          endif  
          
        Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
        Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
        Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
        _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4 + (@OSBuild > 5999))
        _GDIPlus_GraphicsSetTextRenderingHint($hGfx, 3)
        _GDIPlus_GraphicsFillRect($hGfx, 0, 0, $iW, $iH, $hTexture)
        Local Const $hBrush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)     
        GDIPlus_BrushDispose($hBrush)
        _GDIPlus_FontFamilyDispose($hFamily)
        _GDIPlus_FontDispose($hFont)
        _GDIPlus_StringFormatDispose($hFormat)
        _GDIPlus_GraphicsDispose($hGfx)
        Local Const $hBitmap_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
        _GDIPlus_BitmapDispose($hBitmap)
        _WinAPI_DeleteObject(GUICtrlSendMsg($lblTime, 0x0172, 0x0000, $hBitmap_GDI)) ;$STM_SETIMAGE = 0x0172, $IMAGE_BITMAP = 0
    
        _WinAPI_DeleteObject($hBitmap_GDI)
    
    EndFunc   ;==>_CheckAvlRam
    
    
    Func _ShowLabel()
    
        Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH)
        Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap)
        _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4 + (@OSBuild > 5999))
        _GDIPlus_GraphicsSetTextRenderingHint($hGfx, 3)
        _GDIPlus_GraphicsFillRect($hGfx, 0, 0, $iW, $iH, $hTexture)
        Local Const $hBrush = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
        Local Const $hFormat = _GDIPlus_StringFormatCreate()
        Local Const $hFamily = _GDIPlus_FontFamilyCreate("Arial")
        Local Const $hFont = _GDIPlus_FontCreate($hFamily, 50)
        Local Const $tLayout = _GDIPlus_RectFCreate(0, 0, $iW, $iH)
        _GDIPlus_StringFormatSetAlign($hFormat, 1)
        _GDIPlus_StringFormatSetLineAlign($hFormat, 1)
    
        _GDIPlus_GraphicsDrawStringEx($hGfx, StringFormat("Ram bald voll"), $hFont, $tLayout, $hFormat, $hBrush)
    
    
    
    EndFunc   ;==>_CheckAvlRam
    Alles anzeigen

    Danke schon mal im Voraus

    lg

  • Background Bild und GUI Elemente

    • casi4712
    • 18. Oktober 2022 um 16:16

    Aber an welcher STelle sagt mein Script denn stelle den TextHintergrund, wenn auch nur für ein Flackern, auf schwarz, ich finde nichts.

    lg und schöne Woche noch

  • Background Bild und GUI Elemente

    • casi4712
    • 12. Oktober 2022 um 10:47

    WIe gesagt, das niedrige Intervall hatte ich nur um es zu verdeutlichen, der schwarze Flackerbalken ist aber in jedem Falle vorhanden, auch bei einem MinutenIntervall. Mich stört es im Prinzip nicht, aber erfahrungsgemäß ist das das erste was den Leuten unangenehm auffält, oft noch vor funktionellen Fehlern. Aber ich gehe halt mal davon aus dass das noch ein Bug von Autoit ist und hoffe mal darauf dass es in der nächsten Version behoben sein wird. Viellen Dank noch mal füpr den Input, werde die Vorschläge bei weiteren Scripten gerne berücksichtigen


    Vielen Dank und schöne Restwoche noch

  • Background Bild und GUI Elemente

    • casi4712
    • 9. Oktober 2022 um 13:18

    Hallo,

    ja ich beziehe mich ja auch auf diesen Post, zumidest diese Zeile:


    If Round($iFreeSpace, 1) <> Round($iFree, 1) Then ; Eine Stelle hinter dem Komma vergleichen


    ist weder in deinem Vorschlag, noch in meinem Post, das hatte mich nur stutzig gemacht;)


    Übrigens noch mal zu Deinem freundlcihen Umbau des Scripts, was ist in dieser Form denn nun der konkrete Vorteil, bzw. was hätte ich für Macken in der Ursprungsform erwarten dürfen? Also dass mit meinem Problem lassen wir mal aussen vor, das dieses Problem ja dadurch auch nicht behoben wurde. Will ja schliesslich auch etwas lernen;)


    lg und schönen Sonntag noch

  • Background Bild und GUI Elemente

    • casi4712
    • 8. Oktober 2022 um 16:20

    HI,

    also nun bin ich ein bisl verwirrt, welchje Zeilen muss ich denn nun ersetzen,

    Code
      If $iFreeSpace <> $iFree Then ; Zwei Stellen hinter dem Komma vergleichen    If Int($iFre
    ;~     If Round($iFreeSpace, 1) <> Round($iFree, 1) Then ; Eine Stelle hinter dem Komma ve

    Diese beiden Zeilen sind in dem Script nicht vorhanden, ich denke wir reden von 2 verschiednen Scripten

    lg und schönes WE noch

  • Background Bild und GUI Elemente

    • casi4712
    • 5. Oktober 2022 um 22:44

    okay, danke Dir werde ich ausprobieren

    lg und schönen Abend noch

  • Background Bild und GUI Elemente

    • casi4712
    • 5. Oktober 2022 um 20:56

    ich hatte Deinen Ansatz auch probiert Bit, ebenfalls das selbe. Ich hatte ja gesagt, die kurze Zeit war nur um es zu verdeutlichen, wenn ich die Zeit höher stelle ist der Effekt aber auch zu sehen. Ist jetzt nicht direkt ein Funktionsfehler, aber schaut halt blöd aus. Ich habe keinen schwatzen Hintegrund für das Lebel gesetzt.

    lg

  • Background Bild und GUI Elemente

    • casi4712
    • 5. Oktober 2022 um 20:29

    hi und danke erstmal,

    stimmt das mit dem weglassen war sehr effektiv. blinkt nicht mehr wenn Bedingung nicht erfüllt ist.

    AutoIt
    ...
    Func _Testspace()
    global $fslabel = ""
    Global $free = DriveSpaceFree($drive) / 1024
    Local $rFree = Round($free, 2)
    
        if $rfree < $SW Then
            GUICtrlSetData($LabelSpace, "freier Speicher auf SystemDrive wird knapp!: ( " & $rfree & "GB)")
        else
            ;GUICtrlSetData($LabelSpace, "")
        endif
    EndFunc
    Alles anzeigen

    Dafür is der schwarze Balken wieder da, wenn die BEdingung erfült ist und er das Label zeigen soll.

    lgund schönen Abend

  • Background Bild und GUI Elemente

    • casi4712
    • 4. Oktober 2022 um 12:54

    okidoki, nicht in die Haare kriegen hier in meinem Post lach,, ok dann weiss ich erst mal Bescheid.

    Mir ist noch ein ähnlicher Effekt aufgefallen, deswegen zeig ich dass gleich mal hier, denke passt hier gut rein. Bei einer Drive Abfrage soll nur ein Text erscheinen, wenn der Schwellwert unterschritten ist. Ich habe die Set Zeile für den Fall, das dies nicht der Fall ist transparent geschaltet, trotzdem kommt beim Aufruf der Adlib Funktion immer ein störender schwarzer Balken. Dieser Effekt entsteht wiederum nur mit einem Hintegrund. Leider konnte ich diesen Effekt mit der obigen Methode nicht beseitigen. Die AdlibRegister Zeit ist hier sehr kurz eingestellt, nur um diesen Effekt zu verdeutlichen.

    AutoIt
    ; includes ---------------------------------------------------------------------
    #include-once
    #include "GUIBkImage.au3"
    #include <GDIPlus.au3>
    #include <GuiCtrlSetOnHover_UDF.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WinApi.au3>
    #include <MsgBoxConstants.au3>
    #include <ButtonConstants.au3>
    #include <StringConstants.au3>
    #include <GUIConstantsEx.au3>
    FileInstall("C:\Users\Riegert\Pictures\TufaSunset-1-2.bmp", "C:\Windows\Temp\hg.bmp", 1)
    
    ; opt --------------------------------------------------------------------------
    Opt('MustDeclareVars', 1)
    ;Opt("TrayAutoPause", 0)
    
    ;declaration ------------------------------------------------------------------
    ;GUI Variables
    Global $ActiveCheck, $result
    Global $ARRAY_COLOR_TOP_MIN[3] = [36, 65, 142]
    Global $ARRAY_COLOR_TOP_MAX[3] = [11, 42, 122]
    Global $RBOX_EVENT_CLOSE  = 1
    Global $ROUNDES = 20, $LastHwnd = 0
    Global $LastHwnd
    Global $GUIBKCOLOR = 0x738599
    Global $SubBack = 0xEAF0E2
    Global $BG
    Global $SW = 20
    global $var_system_drive = StringLeft(@WindowsDir, 2); SystemDrive auslesen
    Global Const $drive = StringLeft( $var_system_drive, 3)
    global $iFreeSpace = ""
    global $fslabel = ""
    global $LabelSpace, $labelTemp, $temp
    
    ;AdLibRegistering--------------------------------------------------------------------------------------------------------------------------------------------
    AdlibRegister('_Testspace', 100)
    
    
    
    ; processing ---------------------------------------------------------------------------------------------------------------------------------------------------
    Global $hGui = RBoxCreate("Integrator 4 Release 076", 840, 625)
    _createLabels()
    ;GUICtrlSetImage($BG, 'C:\Windows\Temp\hg.bmp')
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    ;Main Logic-------------------------------------------------------------------------------------------------------------------------------------------------------
    While True
        CheckX($hGui, $RBOX_EVENT_CLOSE, "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0xA3A3A3)", "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0x555555)")
    
       local $gMsg = GUIGetMsg()
        Switch $gMsg
    
            Case $GUI_EVENT_CLOSE, $RBOX_EVENT_CLOSE
                GUIDelete($hGui)
                AdlibUnRegister('_Testspace')
                Exit
        EndSwitch
    WEnd
    
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _createLabels()
     GUICtrlSetState($hgui, $GUI_DISABLE)
        
        $labelSpace = GUICtrlCreateLabel($FSlabel, 10, 530, 350, 20)
          GUICtrlSetColor(-1, 0xF00404) ; red
          GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
          GUICtrlSetFont(-1, 10, 100) ; bold
    EndFunc
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _Testspace()
    global $fslabel = ""
    Global $free = DriveSpaceFree($drive) / 1024
    Local $rFree = Round($free, 2)
    
        if $rfree < $SW Then
            GUICtrlSetData($LabelSpace, "freier Speicher auf SystemDrive wird knapp!: ( " & $rfree & "GB)")
        else
            GUICtrlSetData($LabelSpace, "")
        endif
    EndFunc
    ;--------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    
    ;GUI STYLE--------------------------------------------------------------------------------------------------------------------------------------------------------
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func RBoxCreate($Title, $width, $height, $left = -1, $top = -1, $show = 1)
        Local $GUI = GUICreate($Title, $width, $height, $left, $top, $WS_POPUP)
    
    $BG = GUICtrlCreatePic('C:\Windows\Temp\hg.bmp', 0, 25, 920, 660)
     GUICtrlCreatePic ( $BG, 0, 25, 920, 660 )
        ;GUICtrlSetState($hGUI, $GUI_DISABLE)
    
         GUICtrlSetState(-1, $GUI_DISABLE)
        GUISetBkColor($GUIBKCOLOR, $GUI)
         _GuiRoundCorners($GUI,0,0,$ROUNDES,$ROUNDES)
        $RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X', $width - 20, 3, 25, 25)
        GUICtrlSetCursor($RBOX_EVENT_CLOSE, 0)
        GUICtrlSetBkColor($RBOX_EVENT_CLOSE, -2)
        GUICtrlSetFont($RBOX_EVENT_CLOSE, 15, 800)
        GUICtrlSetColor($RBOX_EVENT_CLOSE, 0x555555)
    
        $Title &= " "
        Local $hTitle = GUICtrlCreateLabel($Title, 0, 0, $width - 20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
        GUICtrlSetFont($hTitle, 17, 400, 0, "Consolas")
        GUICtrlSetBkColor($hTitle, -2)
        Local $Graphic = GUICtrlCreateGraphic(0, 0, $width, 25)
        GUICtrlSetState($Graphic, $Gui_DISABLE)
        If $show = 1 Then GUISetState(@SW_SHOW, $GUI)
    
        Return $GUI
    EndFunc
    
    
    
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
        If Not IsArray($cGui) Then
            Return 0
        EndIf
          If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
          If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
        Dim $pos, $ret, $ret2
        $pos = WinGetPos($h_win)
        $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
            If $ret[0] Then
                $ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
            If $ret2[0] Then
            Return 1
            Else
               Return 0
            EndIf
            Else
               Return 0
            EndIf
    EndFunc
    
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func GradientFill($im, $x1, $y1, $width, $height, $left_color, $right_color)
     Local $color0=($left_color[0]-$right_color[0])/$height, $color1=($left_color[1]-$right_color[1])/$height
     local $color2=($left_color[2]-$right_color[2])/$height
       For $Y=0 to $height-1
        local $red=$left_color[0]-floor($Y*$color0)
        local $green=$left_color[1]-floor($Y*$color1)
        local $blue=$left_color[2]-floor($Y*$color2)
        local $col = Dec(Hex($blue,2) & Hex($green,2) & Hex($red,2))
          GUICtrlSetGraphic($im,$GUI_GR_COLOR, $col)
          GUICtrlSetGraphic($im,$GUI_GR_MOVE,0,$Y)
          GUICtrlSetGraphic($im,$GUI_GR_LINE,$width,$Y)
        Next
          GUICtrlSetGraphic($im,$GUI_GR_COLOR, 0x000000)
          GUICtrlSetGraphic($im,$GUI_GR_MOVE,0,$height)
          GUICtrlSetGraphic($im,$GUI_GR_LINE,$width,$height)
          GUICtrlSetGraphic($im,$GUI_GR_REFRESH)
    EndFunc
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Alles anzeigen
  • Background Bild und GUI Elemente

    • casi4712
    • 2. Oktober 2022 um 19:21

    okidoki, dann fehlte das GUICtrlCreatePic, hatte mich schon gwundert. Jetzt schauts sauber aus.

    Dann bedanke ich mich noch mal recht herzlich bei euch

    lg und schöne Feiertage noch

  • Background Bild und GUI Elemente

    • casi4712
    • 2. Oktober 2022 um 18:43

    Hallo,

    das lauffähige Beispiel hatte ich doch gepostet, ich habe es doch auch entsprechend den Vorschlägen von Mombass gepostet! Da er ja gesagt hatte, er konnte das Problem nachvollziehen, kann ich nun Deine Einlassung nicht ganz nachvollziehen. Soll ich den Inhalt von den UDFs posten, meinst Du das? Oder das Hintergrundbild? Ich hatte es mit meheren Bildern und Formaten probiert,

    lg

  • Background Bild und GUI Elemente

    • casi4712
    • 2. Oktober 2022 um 15:13

    So, erst mal recht lieben Dank Moombas für die tattkräfrige Unterstützung. Ich habe deine Vorschläge entsprechend eiingarbeitet, er bemeckert aber aus irgend einem Grunde eine angeblich fehlende Klammer,, wahrscheinlich bin blind, daber sewhe da keine Klammer die fehlt. Das ganze schaut jetzt so aus:

    AutoIt
    #include-once
    
    #include "GUIBkImage.au3"
    #include "Services.au3"
    #include <GDIPlus.au3>
    #include <GuiCtrlSetOnHover_UDF.au3>
    #include <StaticConstants.au3>
    #include <String.au3>
    #include <WinApi.au3>
    #include <MsgBoxConstants.au3>
    #include <ButtonConstants.au3>
    #include <StringConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <date.au3>
    #include <EditConstants.au3>
    #include <Array.au3>
    #include <Constants.au3>
    #include <FontConstants.au3>
    #include <WinAPIGdiDC.au3>
    #include <WinAPIGdiInternals.au3>
    #include <WinAPIHObj.au3>
    #include <WinAPISysInternals.au3>
    #include <ComboConstants.au3>
    FileInstall("C:\Users\user\Pictures\scr09082022-084252.bmp", "C:\Windows\Temp\hg.bmp", 1)
    
    ; opt --------------------------------------------------------------------------
    Opt('MustDeclareVars', 1)
    
    
    ;declaration ------------------------------------------------------------------
    ;GUI Variables
    Global $BG
    Global $ActiveCheck, $result
    Global $ARRAY_COLOR_TOP_MIN[3] = [36, 65, 142]
    Global $ARRAY_COLOR_TOP_MAX[3] = [11, 42, 122]
    Global $RBOX_EVENT_CLOSE  = 1
    Global $ROUNDES = 20, $LastHwnd = 0
    Global $LastHwnd
    Global $GUIBKCOLOR = 0x738599
    Global $SubBack = 0xEAF0E2
    
    
    ; processing ---------------------------------------------------------------------------------------------------------------------------------------------------
    
    Global $hGui = RBoxCreate("Integrator 4 Release 076", 840, 625)
    
    ;FunctionCalls---------------------------------------------------------------------------------------------------------------------------------------------------
    
    _createButtons()
    ;_createLabels()
    GUICtrlSetImage($BG, 'C:\Windows\Temp\hg.bmp')
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    ;------------------------------------------------------------------------------------------------------------------------------------------------
    While True
        CheckX($hGui, $RBOX_EVENT_CLOSE, "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0xA3A3A3)", "GuiCtrlSetColor(" & $RBOX_EVENT_CLOSE & ",0x555555)")
       local $gMsg = GUIGetMsg()
        Switch $gMsg
    
            Case $GUI_EVENT_CLOSE, $RBOX_EVENT_CLOSE
                GUIDelete($hGui)
    
            Case $Combo1 ; Combo fires <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                GUICtrlSetState($btnStart, $GUI_ENABLE) ; Button enabled <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    
            Case $btnStart
              IF GUICtrlRead($combo1) = "key one" Then _fu1()
              IF GUICtrlRead($combo1) = "key two" Then _fu2()
    
        EndSwitch
    WEnd
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    ;BUTTONS----------------------------------------------------------------------------------------------------------------------------------------------------------
    Func _createButtons()
    GUICtrlSetState($hgui, $GUI_DISABLE)
    
    global $combo1 = GUICtrlCreateCombo ("Scripte", 300, 557, 150, 120)
    global $btnStart = GUICtrlCreateButton("🟥", 450, 557, 23, 23)
    Local $aTest[5][4] = [[4, 0], ["Key One", "V1"], ["Key Two", "V2"], ["Key three", "V3"], ["Key four", "V4"]]
    Local $sTest = ""
    
    ;Inhalt Combobox
      For $i = 1 To $aTest[0][0]
        $sTest &= "|" & $aTest[$i][0]
      Next
        GUICtrlSetData($Combo1, $sTest)
    
    EndFunc
    ;----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    
    
    ;GUI STYLE--------------------------------------------------------------------------------------------------------------------------------------------------------
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Func RBoxCreate($Title, $width, $height, $left = -1, $top = -1, $show = 1)
        Local $GUI = GUICreate($Title, $width, $height, $left, $top, $WS_POPUP)
    
    $BG = ('C:\Windows\Temp\hg.bmp', 0, 25, 920, 660)
        GUICtrlCreatePic ($BG)
        ;GUICtrlSetState(-1, $GUI_DISABLE)
    
         GUICtrlSetState(-1, $GUI_DISABLE)
        GUISetBkColor($GUIBKCOLOR, $GUI)
         _GuiRoundCorners($GUI,0,0,$ROUNDES,$ROUNDES)
        $RBOX_EVENT_CLOSE = GUICtrlCreateLabel('X', $width - 20, 3, 25, 25)
        GUICtrlSetCursor($RBOX_EVENT_CLOSE, 0)
        GUICtrlSetBkColor($RBOX_EVENT_CLOSE, -2)
        GUICtrlSetFont($RBOX_EVENT_CLOSE, 15, 800)
        GUICtrlSetColor($RBOX_EVENT_CLOSE, 0x555555)
    
        $Title &= " "
        Local $hTitle = GUICtrlCreateLabel($Title, 0, 0, $width - 20, 26, $SS_CENTER, $GUI_WS_EX_PARENTDRAG)
        GUICtrlSetFont($hTitle, 17, 400, 0, "Consolas")
        GUICtrlSetBkColor($hTitle, -2)
        Local $Graphic = GUICtrlCreateGraphic(0, 0, $width, 25)
        GUICtrlSetState($Graphic, $Gui_DISABLE)
        If $show = 1 Then GUISetState(@SW_SHOW, $GUI)
    
        Return $GUI
    EndFunc
    
    
    
    Func CheckX($hGui, $CtrlID, $sCMD, $eCMD)
        Local $cGui = GUIGetCursorInfo($hGui)
        If Not IsArray($cGui) Then
            Return 0
        EndIf
          If $LastHwnd <> $cGui[4] And $cGui[4] = $CtrlID Then Return Execute($sCMD) + Assign("LastHwnd", $cGui[4])
          If $LastHwnd <> $cGui[4] Then Return Execute($eCMD) + Assign("LastHwnd", $cGui[4])
    EndFunc
    ;-----------------------------------------------------------------------------------------------------------------------------------------------------------------
    
    Func _GuiRoundCorners($h_win, $i_x1, $i_y1, $i_x3, $i_y3)
        Dim $pos, $ret, $ret2
        $pos = WinGetPos($h_win)
        $ret = DllCall("gdi32.dll", "long", "CreateRoundRectRgn", "long", $i_x1, "long", $i_y1, "long", $pos[2], "long", $pos[3], "long", $i_x3, "long", $i_y3)
            If $ret[0] Then
                $ret2 = DllCall("user32.dll", "long", "SetWindowRgn", "hwnd", $h_win, "long", $ret[0], "int", 1)
            If $ret2[0] Then
            Return 1
            Else
               Return 0
            EndIf
            Else
               Return 0
            EndIf
    EndFunc
    Alles anzeigen

    lg und schönen Sonntag noch

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™