Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
#include <windows.h>
void SetWindowBlur(HWND hWnd)
const HINSTANCE hModule = LoadLibrary(TEXT("user32.dll"));
if (hModule)
int nAccentState;
int nFlags;
int nColor;
int nAnimationId;
int nAttribute;
PVOID pData;
ULONG ulDataSize;
typedef BOOL(WINAPI*pSetWindowCompositionAttribute)(HWND, WINCOMPATTRDATA*);
const pSetWindowCompositionAttribute SetWindowCompositionAttribute = (pSetWindowCompositionAttribute)GetProcAddress(hModule, "SetWindowCompositionAttribute");
if (SetWindowCompositionAttribute)
ACCENTPOLICY policy = { 3, 0, 0, 0 }; // ACCENT_ENABLE_BLURBEHIND=3...
WINCOMPATTRDATA data = { 19, &policy, sizeof(ACCENTPOLICY) }; // WCA_ACCENT_POLICY=19
SetWindowCompositionAttribute(hWnd, &data);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR pCmdLine, int nCmdShow)
HWND taskbar = FindWindow(L"Shell_TrayWnd", NULL);
while (true) {
SetWindowBlur(taskbar); Sleep((DWORD)10);

Awesome 👍

Cool! I'm a beginner at Windows programming, so I have a few questions ;)
Could you elaborate on why you have to re-run SetWindowBlur every 10 ms? Is there some mechanism that resets the taskbar window very often?
Also, I would have done most of the setup in your SetWindowBlur in WinMain (i.e. only once), and then only called SetWindowCompositionAttribute every 10 ms. Is there a reason that you load and unload the library every time you want to re-apply the composition attributes?
Thanks for your time and the very nice tweak, in any case :)

You're da Real MVP...

sadphi commented Jan 9, 2017

@grebnetiew It needs to refresh every 10 ms as opening the start button will make the blur go away.

Also, At line 40, is the L a mistype? It works without the L and it only gives errors.

Ah I see. Thanks :)

embql commented Jan 10, 2017

Downloading your compiled exe from a link to your Google Drive reveals that it is infected with "Gen:Variant.Razy.110665".
What gives? Both Google and my own protection software catches it.

Probably a stupid question (I have pretty much no C++ experience), but why does your compiled exe make the taskbar completely transparent (and this code doesn't)? Also your image on Reddit shows a translucent taskbar, not a transparent one.

Eweol commented Jan 10, 2017

Is there a Chance to get the transparent taskbar on more than one monitor?

sadphi commented Jan 10, 2017

@morganrpugh I see, thanks

jNizM commented Jan 11, 2017

@Eweol For this information, follow my link I posted above =)

@jNizM I compiled your autohotkey script and it works for a few seconds before the script appears to crash.

Waiting for the v2 :D

jNizM commented Jan 12, 2017

@link6155 It does not crash. SetWindowBlur() set the blur effect and after 5 seconds SetWindowBlur(false) remove the blur effect and after this the script exit's. Its just an example how to use it =) For more questions visit here

marklk commented Jan 13, 2017

So just exactly how would i instal this code? Does it come in a executable version?

jNizM commented Jan 20, 2017

Create a new github repo for AutoHotkey ->
(incl. coloring / transparent / blur)


ethanhs commented Jun 3, 2017

A lot has happened since this was published. Please see for more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment