C#/WPF 设置和启动Windows屏保程序

这篇具有很好参考价值的文章主要介绍了C#/WPF 设置和启动Windows屏保程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

        我们平时电脑启动的屏保程序其本质也是应用程序,只是后缀名为.scr。所以我们只需要把应用程序后缀改为.scr,然后右键选择安装即可启动我们自己的屏保程序。

C#/WPF 设置和启动Windows屏保程序,C#,WPF,wpf,c#

屏保注册表参数

        设置电脑屏保参数,在个性化设置>锁屏界面>屏幕保护程序设置进行调节和设置。设置完成后参数会写入注册表,电脑会根据注册表中设置的参数启动屏保程序。我们也可以使用程序直接设置注册表屏保参数,启动我们自定义屏保程序。

屏保注册表位置:计算机\HKEY_CURRENT_USER\Control Panel\Desktop

屏保注册表参数如下

  • SCRNSAVE.EXE:默认屏保程序,我们可将此键值设置为我们制作的程序(程序后缀为.scr)
  • ScreenSaveActive:屏保状态,1为启动,0为关闭
  • ScreenSaveTimeout:屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900(15分钟)
  • ScreenSaverIsSecure:默认参数为0,标识不需要用户密码登录即可启动屏保

C#/WPF 设置和启动Windows屏保程序,C#,WPF,wpf,c#

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://www.toymoban.com/news/detail-801206.html

到了这里,关于C#/WPF 设置和启动Windows屏保程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • WPF 启动项目 Grid、StackPanel 布局

    WPF 启动项目 Grid、StackPanel 布局

    1.固定像素布局 Width = “200” 2.比例布局 Width = “1*” 3.内容长度自动布局 Width = “AUTO”

    2024年02月22日
    浏览(12)
  • WPF icon的设置

    WPF icon的设置

    想给控件设置个圆形图片 ,代码如下:   报错,提示   expected type is ‘geometry’, actual type is ‘image’ 改成如下:

    2024年02月15日
    浏览(9)
  • WPF Border设置渐变色

    背景色渐变 Border Border.Resources                                             Style TargetType=\\\"Border\\\"                                                 Setter Property=\\\"Background\\\"                                                     Setter.Value                          

    2024年02月10日
    浏览(8)
  • WPF 如何设置全局的订阅发布事件

    我们需要一个全局事件订阅发布功能,实现页面通讯。使两个毫无关系的页面通过一个中间量进行通讯。 IEventAggregator:消息订阅集合 这个是Prism提供的消息订阅功能。使用如下 设置订阅类型,即 官方案例,在ViewModel中使用 Tips:订阅中传递的值和EventClass: PubSubEventstr

    2024年02月15日
    浏览(25)
  • WPF 设置图片圆角的3种方式

    在WPF中,设置页面布局的时,遇到了设置图片圆角问题,试了以下几种方式,都能实现: 第一种:这种图片是跟着border设置的圆角而改变的,自适应图片的大小 Border x:Name=\\\"b_IsChecked\\\"  Width=\\\"48\\\" Height=\\\"48\\\" HorizontalAlignment=\\\"Right\\\" VerticalAlignment=\\\"Top\\\" CornerRadius=\\\"0,8,0,0\\\" Border.Background Im

    2024年02月10日
    浏览(12)
  • WPF 控件设置透明度的方法

    WPF 控件设置透明度的方法

    方法一:通过 Opacity 属性设置背景色透明度。范围从0-1,0表示完全透明,看不见。     通过 Opacity 属性去改变控件透明度 会影响子控件的透明度,是因为Opacity属性是在UIElement 类(以及Brush基类)中定义,所有元素都具有该属性; 界面如下图图  方法二:通过Background 属性的

    2024年02月11日
    浏览(12)
  • Wpf DataGrid设置列标题动态绑定实例

    在 WPF 中,可以使用 DataGrid 控件来显示和编辑表格式的数据。要设置 DataGrid 列标题的动态绑定,可以使用 DataGrid 的列定义和绑定功能。 以下是一个示例,展示如何使用动态绑定设置 DataGrid 的列标题: 在 XAML 中定义 DataGrid 控件,并为其定义列: 在代码后台(如 ViewModel 或

    2024年02月08日
    浏览(11)
  • WPF实战学习笔记06-设置待办事项界面

    创建待办待办事项集合并初始化 TodoViewModel: 创建绑定右侧命令、变量 设置界面

    2024年02月15日
    浏览(44)
  • WPF-System.Windows.Window

    PresentationFramework.dll 是 .NET Framework 中的一个程序集,包含了 WPF(Windows Presentation Foundation) 应用程序开发中的一些关键类和资源。如果你想在项目中使用 WPF 相关的类型和资源,就需要引用 PresentationFramework.dll。 通常情况下,PresentationFramework.dll 可以在以下目录中找到: 其中

    2024年04月26日
    浏览(27)
  • 界面组件DevExpress WPF v23.1新版亮点 - 启动和内存优化

    界面组件DevExpress WPF v23.1新版亮点 - 启动和内存优化

    DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数

    2024年02月12日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包