本文介绍: C#/WPF 设置和启动Windows屏保程序
前言
我们平时电脑启动的屏保程序其本质也是应用程序,只是后缀名为.scr。所以我们只需要把应用程序后缀改为.scr,然后右键选择安装即可启动我们自己的屏保程序。
屏保注册表参数
设置电脑屏保参数,在个性化设置>锁屏界面>屏幕保护程序设置进行调节和设置。设置完成后参数会写入注册表,电脑会根据注册表中设置的参数启动屏保程序。我们也可以使用程序直接设置注册表屏保参数,启动我们自定义屏保程序。
屏保注册表参数如下
- SCRNSAVE.EXE:默认屏保程序,我们可将此键值设置为我们制作的程序(程序后缀为.scr)
- ScreenSaveActive:屏保状态,1为启动,0为关闭
- ScreenSaveTimeout:屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900(15分钟)
- ScreenSaverIsSecure:默认参数为0,标识不需要用户密码登录即可启动屏保
C#/WPF代码启动自定义屏保
internal class ComputerHelper
{
[DllImport("user32.dll")]
private static extern int SendMessage(int hWnd, int Msg, int wParam, int lParam);
private const int HWND_BROADCAST = 0xffff;
private const int WM_SYSCOMMAND = 0x112;
private const int SC_SCREENSAVE = 0xf140;
/// <summary>
/// 启动屏幕程序
/// </summary>
public static void ScreenSaveStart()
{
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
}
}
public partial class MainWindow : Window
{
private string screenSaver = "D:\Test.scr";
public MainWindow()
{
InitializeComponent();
}
#region Methods
/// <summary>
/// 更新屏保注册表参数
/// </summary>
private void UpdateScreenSaverRegist()
{
//获取user根项
RegistryKey user = Registry.CurrentUser;
//打开desktop项
RegistryKey desktop = user.OpenSubKey("Control Panel\Desktop", true);
if(desktop != null)
{
//设置屏保程序位置
desktop.SetValue("SCRNSAVE.EXE", screenSaver);
//是否启动屏保 0:不启动 1:启动
desktop.SetValue("ScreenSaveActive", "1");
//退出屏保后是否需要登录 0:不需要 1:需要
desktop.SetValue("ScreenSaverIsSecure", "1");
//电脑无操作后启动屏保时间
desktop.SetValue("ScreenSaveTimeout", "60");
}
}
#endregion
private void btnSetScreenSaver_Click(object sender, RoutedEventArgs e)
{
try
{
UpdateScreenSaverRegist();
ComputerHelper.ScreenSaveStart();
}
catch (Exception ex)
{
MessageBox.Show($"设置屏保失败->{ex.Message}");
}
}
}
实例链接:https://download.csdn.net/download/lvxingzhe3/88746976
原文地址:https://blog.csdn.net/lvxingzhe3/article/details/135595441
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_57232.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。