Die Funktion von BugFix aus Post 4 funktioniert bei mir ohne jegliche Probleme (Win 7 x64). Die Farbe aller Fenster wird sofort auf den angegebenen Wert geändert, und die Rückgabe der aktuellen Farbe sowie das setzen der Transparenz geht auch.
Sicher, dass du exakt diese Funktion hier verwendet hast?
Spoiler anzeigen
;===============================================================================
; Function Name....: _AeroColor_Set
; Description......: Ändert die Aero-Farbe oder fragt die aktuelle ab
; Parameter(s).....: $iColor die neue Farbe (RGB 0xFFFFFF), -1 (Standard) gibt die aktuelle Farbe zurück ohne Änderung
; $fTrans Transparenz aktivieren/deaktivieren, True=aktivieren (Standard)
; Return Value(s)..: Erfolg Der alte Farbwert bei Setzen eines neuen, bzw. mit Col=-1 der aktuelle Farbwert
; Fehler -1 @error des DllCalls ..Get
; -2 @error des DllCalls ..Set
; Author(s)........: BugFix ([email='bugfi@autoit.de'][/email])
;===============================================================================
Func _AeroColor_Set($iColor=-1, $fTrans=True)
Local $tDwmColorParams = DllStructCreate('uint;uint;uint;uint;uint;uint;bool;')
Local $pDwmColorParams = DllStructGetPtr($tDwmColorParams)
Local $ret, $iOldColor
$ret = DllCall("dwmapi.dll", "int", 127, "ptr", $pDwmColorParams)
If Not @error Then
$iOldColor = DllStructGetData($tDwmColorParams, 1)
Else
Return SetError(@error,0,-1)
EndIf
If $iColor = -1 Then Return $iOldColor
DllStructSetData($tDwmColorParams, 1, $iColor)
DllStructSetData($tDwmColorParams, 7, Not $fTrans)
$ret = DllCall("dwmapi.dll", "int", 131, "ptr", $pDwmColorParams, "bool", True)
If Not @error Then
Return $iOldColor
Else
Return SetError(@error,0,-2)
EndIf
EndFunc ;==>_AeroColor_Set
Hast du überhaupt Windows 7? Ich könnte mir vorstellen, dass es z.B. bei Vista nicht geht.