Charles,
Thanks much for your post. Your solution solved the problem for me. After deleting the "SystemData" folder and letting the system recreate it, I found I had to select five different pictures that I had not used before to get them to show up in the control panel. Once I had gone through five, thumbnails for all five showed below the preview of the currently selected image in the control panel, and once I saw those thumbnails, I could select previous images that I had used before, and now those previously selected images worked again.
Here's what I think is going on. When you select an image for the lock screen, the system will adjust the image (shrink, enlarge, whatever it does) for your current screen and store that processed version in SystemData. Because deleting SystemData doesn't entirely solve the problem, it appears there's some other data cache in use as well, perhaps of pointers to the processed images. So when you select a previously-used image, the system looks in that cache and says "oh, I already processed it" but then when it goes to get the processed image from SystemData, it's not there (because we deleted or renamed the folder). So you see no image in the control panel. By selecting five new images (that are not in that cache because you haven't used them before) you eventually refill the cache with valid data. And at this point you can select previously-used images because the old reference to that image in the cache has been flushed out by selecting newer images.
Summarized, my steps were:
- Delete the "SystemData" folder, per your instructions with permission fix-ups.
- In the "Change PC Settings" control panel for the lock screen, successively pick five new images you've never used before. Once you see both the image you've chosen for the lock screen and five thumbnail images below it on the control panel screen, you should be able to choose even previously-used images for the lock screen.
If zachd is still reading this forum, here's what I think at least part of the code fix is (roughly): when selecting an image in the control panel, if it's in this data cache, you need to check if the processed image is still in fact in SystemData. If not, you should flush the cache entry and recreate the processed images as if the user had just selected a new image. There is apparently no error check for this case - probably you simply note the user had previously used the image and you assume the SystemData images are still there (except they aren't always there). This doesn't explain why SystemData is sometimes getting permissions screwed up, but at least it makes some of these situations easier to recover from. I'll be there will be far fewer complaints of "I can't select anything in the control panel!" if you handle this case.
P.S. zachd if you're reading: would love it if you would also add a way to change the multi-user login screen picture in the control panel as well. That picture is different from the lock screen or single-user login screen, and there's not a way in the UI to easily change it. Instead I have to manually change the image in C:\Windows\Web\Screen\img100.jpg, delete the SystemData folder mentioned in this thread that caches the processed versions, and then restart in order to get a different image on multi-user login. A system-supported UI friendly way to change this image would be way nicer.