Windows:屏保设置被置灰问题处理

1、问题现象

在部分场景下,屏保会出现无法置灰无法设置的情况,像下面这种:

image-20240122173726259

正常Windows家庭版还是专业版等版本,都不会限制这一块的编辑权限,在特定情况下会被管理员给修改了,导致无法设置。

2、解决方法

通过修改注册表来释放编辑权限:

  • 1、Win+R打开运行窗口:输入regedit

image-20240122174026050

  • 2、进入以下路径:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop
  • 3、删除配置项下所有配置文件(非默认):

scrnsave.exe(屏保程序)和ScreenSaveTimeOut(屏保等待时间),如果存在ScreenSaverIsSecure,一并删除:

image-20240122181136558

  • 4、验证修改

重新打开屏保设置,删除注册表项之后,就能够正常配置屏保程序和时间了:

image-20240122181314029

3、问题原因

这里涉及到注册表之间的逻辑关系,下面两类注册表:

  • 1、用户侧控制面板配置

这里为用户自行定义的一些配置,如前文中的scrnsave.exe(屏保程序)和ScreenSaveTimeOut(屏保等待时间),ScreenSaverIsSecure等配置项也可以在这边设置:

HKEY_CURRENT_USER\Control Panel\Desktop
  • 2、系统控制面板的策略配置:

当策略配置中存在配置项时,会覆盖掉HKEY_CURRENT_USER\Control Panel\Desktop,即用户侧配置不生效,其对应的控制面板设置会置灰

HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设置屏幕保护图片,可以使用系统自带的“照片”屏幕保护程序。首先,需要将需要设置的图片添加到“照片”屏幕保护程序中,然后再在注册表中设置相应的键值来指定使用该图片作为屏幕保护。 以下是一个C语言代码示例,可以将指定图片添加到“照片”屏幕保护程序中,并设置该图片为屏幕保护: ```c #include <stdio.h> #include <windows.h> #include <shlobj.h> int main() { // 获取“照片”屏幕保护程序的路径 WCHAR path[MAX_PATH] = {0}; if (SHGetFolderPathW(NULL, CSIDL_SYSTEM, NULL, SHGFP_TYPE_CURRENT, path) != S_OK) { printf("Failed to get system folder path.\n"); return -1; } wcscat_s(path, MAX_PATH, L"\\PhotoScreensaver.scr"); // 添加图片到“照片”屏幕保护程序中 WCHAR picPath[MAX_PATH] = L"C:\\path\\to\\your\\picture.jpg"; // 替换成你的图片路径 HKEY hKey; DWORD dwDisposition; if (RegCreateKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows Photo Viewer\\SlideshowScreensaver", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS) { RegSetValueExW(hKey, L"EncryptedPIDL", 0, REG_BINARY, NULL, 0); RegSetValueExW(hKey, L"PersistAlbumArt", 0, REG_SZ, (BYTE *)"1", 2); RegSetValueExW(hKey, L"PersistComment", 0, REG_SZ, (BYTE *)"1", 2); RegSetValueExW(hKey, L"PersistDescription", 0, REG_SZ, (BYTE *)"1", 2); RegSetValueExW(hKey, L"PersistKeywords", 0, REG_SZ, (BYTE *)"1", 2); RegSetValueExW(hKey, L"PersistTitle", 0, REG_SZ, (BYTE *)"1", 2); RegSetValueExW(hKey, L"SelectedPaths", 0, REG_SZ, (BYTE *)picPath, (wcslen(picPath) + 1) * sizeof(WCHAR)); RegSetValueExW(hKey, L"SelectedType", 0, REG_DWORD, (BYTE *)"\x01\x00\x00\x00", 4); RegCloseKey(hKey); } // 设置“照片”屏幕保护程序屏幕保护 if (RegCreateKeyEx(HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS) { RegSetValueEx(hKey, "SCRNSAVE.EXE", 0, REG_SZ, (BYTE *)path, (wcslen(path) + 1) * sizeof(WCHAR)); RegSetValueEx(hKey, "ScreenSaveActive", 0, REG_SZ, (BYTE *)"1", 2); RegCloseKey(hKey); } return 0; } ``` 注意:该程序需要管理员权限才能修改注册表。同时,需要将图片添加到“照片”屏幕保护程序中的操作只需要执行一次,如果要更换图片,则需要先将旧图片从“照片”屏幕保护程序中删除,再添加新图片。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值