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.
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 188.8.131.5210 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 serveral 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.