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");}}#endregionprivate 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt/QML编程之路:slider(34)

滑条slider&#xff0c;有时也成为进度条progressbar&#xff0c;在GUI界面中也是经常用到的。 import QtQuick 2.9 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.2ApplicationWindow {id:rootvisible: truewidth: 1920height: 720//title: qsTr("Hello World&q…

C#使用Stopwatch实现执行耗时及性能监测

Stopwatch类提供一组方法和属性&#xff0c;一般用来测量代码运行消耗时间,以便获取更多代码运行性能上的数据。以下主要介绍C#中用Stopwatch实现执行耗时及性能监测的方法。 1、Stopwatch简介 1&#xff09;命名空间 using System.Diagnostics; 2&#xff09;字段 字段 字…

rabbitmq-java基础详解

一、rabbitmq是什么&#xff1f; 1、MQ定义 MQ&#xff08;Message Queue&#xff09;消息队列 主要解决&#xff1a;异步处理、应用解耦、流量削峰等问题&#xff0c;是分布式系统的重要组件&#xff0c;从而实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性的架…

c#之枚举类型和结构体

(一般如果取值范围有效,使用枚举,几个类型组成了一个新的类型使用结构体) 1. 枚举 namespace 枚举类型 {enum GameState{//枚举类型中的每一个值,都是一个整数,默认为int类型Pause3,//默认值为0Failed2,//默认值为1Success7,//默认值为2Start8//默认值为3}class Program{st…

Unity面试笔记:Unity常见关键词概念

Unity面试笔记&#xff1a;Unity常见关键词概念 Invoke 延迟函数 和 Coroutine协程 和 Thread线程帧缓冲区&#xff08;Frame buffer&#xff09;颜色缓冲区&#xff08;Color buffer&#xff09;深度缓冲区&#xff08;Depth buffer&#xff09;模板缓冲区&#xff08;Stencil…

如何从命令行运行testng.xml?

目录 创建一个新的java项目并从命令行运行testng.xml 使用命令行运行XML文件 从命令行运行现有maven项目的XML文件 在这篇文章中&#xff0c;我们将使用命令行运行testng.xml。有多种场景需要使用命令行工具运行testng.xml。也许您已经创建了一个maven项目&#xff0c;现在想…

运筹说 第97期|非线性规划-一维搜索

第二节 一维搜索 通过上期学习&#xff0c;大家已经了解了非线性规划的基本内容&#xff0c;那么如何求解一个非线性规划问题呢&#xff1f;本期小编就带大家来学习用于求解单变量无约束极值问题的方法——一维搜索&#xff0c;该方法也是后面求解更复杂问题的基础。 一、引入…

FinalShell连接虚拟机2024/1/16

目录 1.右键虚拟机桌面空白处&#xff0c;选择打开终端&#xff0c;在终端中输入ifconfig命令&#xff0c;查看Linux系统的IP地址&#xff1a;复制。 2.打开FinalShell,点击&#xff08;1&#xff09;号文件夹打开连接管理器&#xff0c;点击&#xff08;2&#xff09;号选择…

Angular系列教程之zone.js和NgZone

文章目录 什么是zone.jsZone的工作原理Zone的常见用途NgZone&#xff1a;Angular中的zone.js使用NgZone使用NgZone执行代码使用NgZone外部检测 结论 什么是zone.js 在Angular中&#xff0c;zone.js是一个非常重要的库&#xff0c;它为我们提供了一种跟踪和管理异步操作的机制。…

vue中引入sass、scss

常规步骤 1. 创建项目 使用vue cli 脚手架工具创建项目 vue create xxxx2. 创建全局样式文件 全局样式变量 路径&#xff1a;/assets/styles/variables.scss //flex 布局变量 $--flex-direction: ("row", "column"); $--flex-position: ("start"…

排序嘉年华———归并排序

文章目录 一.归并是什么&#xff1f;题目一&#xff1a;合并有序数组题目二&#xff1a;合并有序链表 二.归并排序1.递归式归并2.非递归式的归并排序 一.归并是什么&#xff1f; 相信朋友们应该做过一类题&#xff0c;合并两个有序数组&#xff0c;在链表里也有合并两个单链表…

liunx安装redis

安装redis 1.向Xftp7上传Redis压缩包 进行解压&#xff1a;tar -zxvf redis-6.0.8.tar.gz 解压后预编译&#xff1a; cd redis-6.0.8 make 创建文件: mkdir -p /opt/redis 安装到指定目录: make install PREFIX/opt/redis 进入安装文件 bin 目录:cd /opt/redis/bin ./redis-se…

Angular系列教程之依赖注入详解

文章目录 引言依赖注入基础依赖注入的基本概念依赖注入的原理 依赖注入实践依赖注入注意事项 引言 Angular作为一款流行的前端框架&#xff0c;提供了许多优秀的功能和特性&#xff0c;其中之一就是依赖注入&#xff08;Dependency Injection&#xff09;。依赖注入是一种设计…

IP定位技术在网络安全行业的探索

随着互联网的普及和深入生活&#xff0c;网络安全问题日益受到人们的关注。作为网络安全领域的重要技术&#xff0c;IP定位技术正逐渐成为行业研究的热点。本文将深入探讨IP定位技术在网络安全行业的应用和探索。 一、IP定位技术的概述 IP定位技术是通过IP地址来确定设备地理位…

Github 2FA验证的解决方法

当前使用GitHub需要启用 2FA 验证&#xff0c;也就是除了账号密码外还有一个实时码&#xff0c;需要额外输入这个正确的实时码才能开启 2FA 验证和后续登陆。 浏览器插件 这是目前我在使用的方法。在浏览器中添加一个叫做Authenticator的插件&#xff0c;传送地址&#xff1a;…

单表查询 -- MySQL(3)

目录 题目&#xff1a; 创建表&#xff1a; 问题&#xff08;17个&#xff09;&#xff1a; 1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工资和最低工资。 5、列出职工…

5 个被低估的开源项目

文章目录 1.集算器 -数据处理2. Firecamp - 邮递员替代方案3.Keploy——后端 测试4. Hanko - 密钥验证5. Zrok - Ngrok 类固醇 长话短说 本文列出了五个不太受欢迎的优秀项目&#xff0c;您应该尝试一下。&#x1f525; 这些工具旨在改进数据处理、API 开发、后端测试、身份验…

GO——gin中间件和路由

中间件 参考&#xff1a;https://learnku.com/articles/66234 结构 中间件是函数中间件函数被放在调用链上调用链的末尾是路由path对应的函数 执行过程 net/http包调用到gin的serverHTTP 参考&#xff1a;go/pkg/mod/github.com/gin-gonic/ginv1.7.7/gin.go:506 通过path找到…

互联网程序员面试方向有哪些

互联网程序员面试的题目和面试方向非常广泛&#xff0c;主要围绕以下几个主题&#xff1a; 基础知识&#xff1a;包括数据结构、算法、面向对象编程、设计模式、网络协议等。例如&#xff0c;如何实现单例模式&#xff0c;二叉树有哪些遍历方式等。编程语言&#xff1a;如Java…

MacOS系统 安装ZooKeeper 和常见问题解决

安装ZooKeeper 和 常见问题 一、安装和启动二、常见问题和解决2.1 配置文件在哪&#xff1f;2.2 安装路径在哪&#xff1f;2.3 如果不想后台运行zookeeper&#xff0c;用完就关&#xff0c;省资源&#xff0c;可以的&#xff01;2.4 启动时&#xff0c;报错2.4 启动/停止使用 z…