Vistas aero design per Script de/aktivieren und checken

    • Offizieller Beitrag

    Hallo

    Ich hab eine kleine UDF geschrieben, mit der man den Vista aero design vorübergehend ausschalten kann (So wie es z.B. VLC Media Player macht)

    Bald kommt:

    Bald wird noch eine Funktion namens "BlurGUI" hinzukommen, die dann die gesamte GUI mit einem Aero effekt setzen wird.
    Funktioniert momentan aber noch nicht so ganz, wie es soll ;)
    Später soll es dann so aussehen: [Blockierte Grafik: http://www.danielmoth.com/Blog/vb6glass2.jpg]

    Hier schonmal die bisherige dwmAPI.au3:

    Spoiler anzeigen
    [autoit]

    #include-once

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

    Global Const $hDwmApiDll = DllOpen("dwmapi.dll")

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

    ;===============================================================================
    ;
    ; Function Name: _EnableDisableAero()
    ; Description: Enables or Disables the Aero design from Vista to the default design.
    ; Parameter(s): $bEnable [BOOLEAN]: True enables the Aero, False disables it.
    ; Requirement(s): dwmapi.dll, Windows Vista
    ; Return Value(s): Returnvals of DLLCall
    ; Author(s): GtaSpider
    ;
    ;===============================================================================
    ;
    Func _EnableDisableAero($bEnable = True) ;True/False
    Local $aDll = DllCall($hDwmApiDll,"int","DwmEnableComposition","int",$bEnable)
    If @error Then Return SetError(@error,0,0)
    Return $aDll[0]
    EndFunc

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

    ;===============================================================================
    ;
    ; Function Name: _IsAeroEnable
    ; Description: Checks if aero is enable
    ; Parameter(s): None
    ; Requirement(s): dwmapi.dll, Windows Vista
    ; Return Value(s): 0 If disabeld, 1 if enabled
    ; Author(s): GtaSpider
    ;
    ;===============================================================================
    ;

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

    Func _IsAeroEnable()
    Local $asDll = DllCall($hDwmApiDll,"int","DwmIsCompositionEnabled","str","")
    If @error Then Return SetError(@error,0,0)
    Return StringReplace(StringReplace(Asc($asDll[1]),"1",True),"0",False)
    EndFunc

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

    Func OnAutoItExit()
    DllClose($hDwmApiDll);Close dwmapi
    EndFunc

    [/autoit]

    Und ein Beispielskript:

    Spoiler anzeigen
    [autoit]

    #include <dwmAPI.au3>

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

    MsgBox(0,"","Aero is "&_IsAeroEnable())
    _EnableDisableAero(False) ;False or 0
    MsgBox(0,"","Aero is "&_IsAeroEnable())
    _EnableDisableAero(1) ;True or 1
    MsgBox(0,"","Aero is "&_IsAeroEnable())

    [/autoit]

    Ich hoffe es gefällt euch ;)

    Im Anhand das beispiel und die include.

    Mfg Spider