Windows 10: Black Lock Screen with Citrix Receiver
Update: KB4022723 seems to fix the black lock screen issue described in this article.
The Spotlight feature of Windows 10 shows beautiful images on the lock screen. Annoyingly, it appears to be broken on many machines, showing a black screen instead of a pretty photograph. Read on for the cause and a workaround.
The Black Lock Screen
Users that are affected by this issue get a fully working lock screen, just without the photograph, i.e. a black screen with time, date and the other controls on it. For an example see the screenshot above.
When a key is pressed and Windows switches from the lock screen to the login screen the background image suddenly appears. This black screen issue affects the lock screen only.
The Cause
As some people noticed the black lock screen issue is caused by applications modifying the setting Animate windows when minimizing and maximizing.
Apparently that setting needs to be turned on or the lock screen will be black. Interestingly, when applications modify this setting the change is not reflected in the UI. You may see Animate windows when minimizing and maximizing enabled in System Properties > Performance Options > Visual Effects like in the following screenshot and still get a black lock screen:
Citrix Receiver and the Black Lock Screen
In some forum posts Citrix Receiver is mentioned as the application causing the black lock screen. Those posts lacked detail, however, so I decided to take a look.
I made sure to have the latest version 4.6.0.12010 of Receiver installed on Windows 10 1607. Locking the screen by pressing CTRL+L I got the black lock screen all right.
After removing the black lock screen using the workaround described below I tried to identify which of the multiple processes that Citrix Receiver is comprised of actually causes the issue. As it turns out, Connection Center is the culprit. Whenever concentr.exe is started it seems to call some API function to change the visual effects in such a way that the black lock screen issue appears.
Workaround for the Black Lock Screen Issue
An easy manual workaround to get the lock screen to display images again is to open the Performance Options dialog shown above on the Visual Effects tab, change any setting (without saving), reverting it back and clicking OK. That overwrites the settings modified by Citrix Receiver’s Connection Center and the lock screen image is back.
API Functions for Programmatic Change
I did not find a script or tool that can change the setting Animate windows when minimizing and maximizing. If you are trying to write one here is some information to get you started.
The relevant Windows API function is SystemParametersInfo. Call it with the parameter SPI_GETANIMATION to query the current state or SPI_SETANIMATION to set a new state. Sample code in C# is available on Stack Overflow.
After a change via SPI_SETANIMATION it might be necessary to send a notification with something similar to the technique described in this post.
21 Comments
You sir, are a genius! In my case, checkbox was checked, unchecked it – became custom, hit apply, checked it, hit apply, back to let windows manage and … FIXED.
Until next launch of concentrr.exe @Joe Nord see this pseudo code from concentr.exe disassembly:
BOOL sub_409B00()
{
BOOL result; // eax@3
int pvParam; // [esp+8h] [ebp-8h]@1
int v2; // [esp+Ch] [ebp-4h]@1
pvParam = 0;
v2 = 0;
::pvParam = 0;
dword_45F278 = SystemParametersInfoA(0x2000u, 0, &::pvParam, 0);
if ( dword_45F278 )
SystemParametersInfoA(0x2001u, 0, 0, 2u);
pvParam = 8;
v2 = 0;
result = SystemParametersInfoA(0x48u, 8u, &pvParam, 0);
dword_45F26C = result;
if ( result )
{
dword_45F274 = v2;
pvParam = 8;
v2 = 0;
result = SystemParametersInfoA(SPI_SETANIMATION, 8u, &pvParam, 2u);
}
return result;
}
@Helge the correct message is to broadcast WM_SETTINGCHANGE.
I think it would be better for concentr.exe to call DwmSetWindowAttribute with the DWMWA_TRANSITIONS_FORCEDISABLED flag on it’s own HWND to disable this only for Receiver windows rather than global…
Thanks for sharing, Remko. If I understand correctly, concentr.exe queries the current state via SPI_GETANIMATION. If it is enabled, it calls SPI_SETANIMATION to disable it.
Yes that’s correct
Reboot and things are back to bad. @helge you remain awesome anyway. @remko Citrix connection manager caused this? My own companies products! Really! Just to its own HWND, yes, but what about the passthru case? Requires study, why did programmer think a wide broadcast was needed?
I *ASS*U*ME*D this was a graphics driver issue – looks like no. Hum….
Connection Center is auto-run by way of an entry in HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run. That might be (part of) the reason why the black lock screen is back after a reboot.
Note: I am aware of the fact that the run key is processed by Explorer, which should happen after the lock screen has been displayed.
I have a ticket open with Citrix regarding this. A workaround they suggested was to rename concentr.exe to concentr.exe.old. The technician told me their engineering team is aware and is working on a fix.
@Josiah – Citrix Receiver 4.7 is now available if anyone wants to test it against this issue.
According to this tweet Citrix Receiver 4.7 does not fix the black lock screen issue.
I just tested with Citrix Receiver 4.7.0.13011: unfortunately the issue is not fixed.
Thank you so much for this fix! I used Joe Nord’s suggestions because I think if you do exactly what it does in the article, it leaves the option as “Custom”, and I wanted it to be “Let windows choose what’s best for my computer”. Been stuck with an annoying black lockscreen for months after downloading Citrix for school…didn’t know that Citrix was even the problem, screen was just inexplicably dark.
I had some trouble finding Performance options, but found it by going to settings, typing in “performance” (don’t put in “performance options”, it won’t come up), then clicking on the second option, “adjust the appearance and performance of windows”
Thanks!
I had the same with 4.7 and the workaround fixed it also. thanks Helge!
I can’t believe Citrix still hasn’t fixed this.
Citrix concentr.exe has been doing this for years
There is workaround here from 2010: https://aaronwalrath.wordpress.com/2010/12/05/fix-for-citrix-xenapp-published-apps-disabling-windows-visual-effects/
If this reg key = 0 the animation is disabled
HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics
MinAnimate=1
Does Windows 10 Creators Update still require animations to be enabled for Spotlight to work on the lock screen?
There is now a Citrix KB article for this issue, CTX223741.
“It is Windows’ behavior and this resolution is work around. Please involve Microsoft support for further root cause investigation.”
We have the same Problem in our Company and noticed that if you have the setting enabled where you need to unlock the lock screen with ctrl+alt+delete (https://technet.microsoft.com/en-us/library/jj852250(v=ws.11).aspx) the background image is working correctly (as it is on the logon screen itself where you enter the password although this is all the same background). Maybe this helps someone as a workaround or with identifying the exact nature of the bug
It looks like MS finally have a fix – https://support.microsoft.com/en-us/help/4022723/windows-10-update-kb4022723
Thanks, Neil. KB4022723 does indeed seem to fix the black lock screen. Verified with Citrix Receiver 4.7.0.13011 on Windows 10 1607.
Please note that KB4022723 is not installed automatically via Windows Update. I had to download and install it manually.
Does the KB4022723 update fix the actual issue of the windows not animating upon minimize and maximize? I never had the black screen issue, but I do have the issue of the windows not animating on maximize and minimize until I uncheck and recheck the setting to enable these animations (as posted above)
Hi, for me it was setting the display scale of Windows 10 to 125%. Once I put it back to 100%, the RDP login window was rendered properly.