예, 가능하지만 문서화되지 않은 기능을 사용해야합니다. 즉, 프로그램이 향후 Windows 버전에서 실행되지 않거나 서비스 팩이나 기타 업데이트가 릴리스 된 경우에도 마찬가지입니다.
위험을 감수하려는 경우 this blog post has full details 기능을 리버스 엔지니어링하고 사용 방법을 리버스 엔지니어링하십시오. DwmGetColorizationParameters
및 DwmSetColorizationParameters
:
는 기본적으로, 당신이 필요로하는 두 가지 기능이 있습니다 : 그것은 당신이 무엇을 달성 할 수의 스크린 샷이 포함되어 있습니다. 구조는 당신이 그들에게 전달하고 방법의 프로토 타입은 (델파이,하지만 난 당신이 당신이 사용하고있는 거라면 C++로 변환 할 수 있습니다 확신) :
tagCOLORIZATIONPARAMS = record
clrColor : COLORREF; //ColorizationColor
clrAftGlow : COLORREF; //ColorizationAfterglow
nIntensity : UINT; //ColorizationColorBalance -> 0-100
clrAftGlowBal : UINT; //ColorizationAfterglowBalance
clrBlurBal : UINT; //ColorizationBlurBalance
clrGlassReflInt : UINT; //ColorizationGlassReflectionIntensity
fOpaque : BOOL;
end;
COLORIZATIONPARAMS=tagCOLORIZATIONPARAMS;
TColorizationParams=COLORIZATIONPARAMS;
PColorizationParams=^TColorizationParams;
TDwmGetColorizationParameters = procedure(out parameters :TColorizationParams); stdcall;
TDwmSetColorizationParameters = procedure(parameters :PColorizationParams; unknown:BOOL); stdcall;
것은 당신이 구문을 사용하지 않는 경우 , 상단 부분은 구조체를 정의하고 하단 두 줄은 메소드 프로토 타입입니다. ^는 포인터를 의미하므로 Set 메서드는 구조체에 대한 포인터를 사용합니다. out
is tricky 그리고이 메소드가 구조체에 대한 포인터를 사용한다는 것을 의미합니다. procedure
은 void를 반환한다는 것을 의미합니다. 아직도 읽는 데 어려움이 있다면 코멘트를 남겨 두어 C로 번역 해 드리겠습니다.
자세한 내용이나 사용 예를 알고 싶다면 read the blog post . (우수한 게시물이며 트래픽이 필요합니다.)