应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。这个小程序就是运用了SystemParametersInfo函数来设置桌面的墙纸,而且程序可以让我们选择多幅墙纸图片,程序会以一定的时间间隔自动改变墙纸。

我们先来看看SystemParametersInfo函数的定义和参数:

使用API函数之前必须先在程序中声明如下:

BOOL WINAPI SystemParametersInfo(
__in UINT uiAction,
__in UINT uiParam,
__inout PVOID pvParam,
__in UINT fWinIni
);

__in     UINT uiAction,指定要设置的参数。参考uAction常数表。

__in     UINT uiParam,参考uAction常数表。

__inout  PVOID pvParam,按引用调用的Integer、Long和数据结构。

__in     UINT fWinIni这个参数规定了在设置系统参数的时候,是否应更新用户设置参数。

下面是部分uAction参数,和使用它们的方法:

6、设置视窗的大小,SystemParametersInfo(6, 放大缩小值, P, 0),lpvParam为long型

17、开关屏保程序,SystemParametersInfo(17, False, P, 1),uParam为布尔型

13、24、改变桌面图标水平和垂直间距,uParam为间距值(像素),lpvParam为long型

15、设置屏保等待时间,SystemParametersInfo(15, 秒数, P, 1),lpvParam为long型

20、设置桌面背景墙纸,SystemParametersInfo(20, True, 图片路径, 1)

93、开关鼠标轨迹,SystemParametersInfo(93, 数值, P, 1),uParam为False则关闭

97、开关Ctrl+Alt+Del窗口,SystemParametersInfo(97, False, A, 0),uParam为布尔型

************************************************

spi_seticontitlelogfont pvParam是一个logfont结构,用于定义图标标题采用的字体。uiParam指定logfont结构的大小。如两者均为NULL,则采用系统启动时定义的字体

spi_seticontitlewrap uiParam为true时打开图标标题自动换行

spi_setkeyboarddelay uiParam代表新的键盘重复延时

spi_setkeyboardpref 若uiParam为true,表明用户相比键盘和鼠标更喜欢用前者。参考spi_getkeyboardpref

spi_setkeyboardspeed uiParam代表新的键盘重复速率

spi_setlangtoggle 令窗口从系统注册表中重新装载热键信息,以便在键盘布局之间交换

spi_setlowpoweractive uiParam为true时允许节能屏幕保护程序模式。只适用于win95

spi_setlowpowertimeout uiParam代表新的节能屏幕保护程序延时。只适用于win95

spi_setmenudropalignment uiParam为false时设置弹出菜单左对齐,true则右对齐

spi_setminimizedmetrics 参数与spi_getminimizedmetrics一样

spi_setmouse lpvparam是一个三元素整数数组的头一个条目,其中包含了鼠标设置。参考spi_getmouse

spi_setmousebuttonswap uparam为true时交换左右鼠标按钮的功能;如果为false,则使用原来的值

spi_setmousekeys 参数与spi_getmousekeys一样

spi_setnonclientmetrics 参数与spi_getnonclientmetrics一样

spi_setpenwindows uiParam为true时载入笔窗口,false则卸载

spi_setpoweroffactive uiParam为true时允许停电屏幕保护模式。只适用于win95

spi_setpowerofftimeout uiParam代表新的停电屏幕保护程序延时。只适用于win95

spi_setscreenreader uiParam为true时表示正在运行一个屏幕阅读程序。参考spi_getscreenreader

spi_setscreensaveactive uiParam为true时激活屏幕保护程序;false表示禁止

spi_setscreensavetimeout uiParam代表新的屏幕保护延迟时间,以秒为单位

spi_setserialkeys 参数与 spi_getserialkeys 相同

spi_setshowsounds uparam为true时允许窗口开启声音提示辅助访问特性。参考spi_getshowsounds

spi_setsnaptodefbutton 如鼠标应自动移到新对话框的默认按钮,则uparam为true。只适用于nt 4.0

spi_setsoundsentry 与 spi_getsoundsentry 相同

spi_setstickykeys 与 spi_getstickykeys 相同

spi_settogglekeys 与 spi_gettogglekeys 相同

spi_setworkarea 与 spi_getworkarea 相同

SystemParametersInfo调置壁纸、屏幕保护程序的更多相关文章

  1. 使用 WPF 开发一个 Windows 屏幕保护程序

    最近有小伙伴问我如何可以让 Windows 静置一段时间不操作之后,显示一个特殊的界面.我想了想,屏幕保护程序可以做到这一点,而且,屏幕保护程序的开发也是非常简单的. 本文将介绍如何为 Windows ...

  2. 使用C#开发屏幕保护程序步骤

    本文介绍使用C#制作屏幕保护的方法,这个屏幕保护就是仿效视窗系统自带的字幕屏保. 屏幕保护程序的扩展名虽然是"scr",但其实是一个可执行的"exe"文件.但他 ...

  3. windows系统操作类和演示程序(关机,关闭显示器,打开屏幕保护程序,打开光驱等)

    /// <summary> /// 系统控制类,关机,关闭显示器,打开屏幕保存程序等 /// </summary> public class SystemPowerContro ...

  4. windows屏幕保护程序opengl模板

    Visual Studio 2013 屏幕保护程序opengl模板 ScreenSaver.cpp #define VC_EXTRALEAN #include <windows.h> #i ...

  5. Window权限维持(五):屏幕保护程序

    屏幕保护是Windows功能的一部分,使用户可以在一段时间不活动后放置屏幕消息或图形动画.众所周知,Windows的此功能被威胁参与者滥用为持久性方法.这是因为屏幕保护程序是具有.scr文件扩展名的可 ...

  6. c#制作一个屏幕保护程序

    代码已上传github 实现思路:纯黑窗体去边框,加入标签. 使用Timmer让windows 10标签运动.限制标签的行为. 代码: int deltX = 10;       int deltY ...

  7. Windows 屏幕保护程序

    { 创建一个win32 窗口项目,不是控制台的 把exe改为src文件 复制到windows目录下 ok }

  8. CentOS取消屏幕保护自动锁屏功能

    CentOS系统在用户闲置一段时间(默认为5分钟)后,会启动屏幕保护程序(默认的屏保为黑屏),并要求重新输入密码才能回到原来的桌面. 设置屏幕保护:System -> Preferences - ...

  9. CentOS系统里如何正确取消或者延长屏幕保护自动锁屏功能(图文详解)

    不多说,直接上干货! 对于我这里想说的是,分别从CentOS6.X  和  CentOS7.X来谈及. 1. 问题:默认启动屏幕保护 问题描述: CentOS系统在用户闲置一段时间(默认为5分钟)后, ...

随机推荐

  1. 阿里java代码检测工具p3c

    阿里在杭州云栖大会上,正式发布众所期待的<阿里巴巴Java开发规约>扫描插件! 该插件由阿里巴巴P3C项目组研发.这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,把<阿里巴巴 ...

  2. JAVA并发编程——守护线程(Daemon Thread)

    在Java中有两类线程:用户线程 (User Thread).守护线程 (Daemon Thread). 所谓守护 线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称 ...

  3. c++的类的封装/继承/多态的简单介绍

    本篇文章仅仅从很表层来介绍一个C++语言中的类,包括什么是类,类的封装性/继承性和多态性.高手直接跳过吧,看了浪费时间,新手或者想温习一下的可以浏览看看. 1. 什么是类? 到底什么是类(class) ...

  4. 和TransDecoder 学习perl 自定义模块的路径问题

    TransDecoder 软件是用perl 原因写的,其中包含了一些自定义的模块,通过一个脚本来进行调用,为了能够正常访问自定义的perl 模块, 在其源代码中利用了FindBin 这个模块 use ...

  5. session 和 cookie (转)

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  6. 【CF497E】Subsequences Return 矩阵乘法

    [CF497E]Subsequences Return 题意:设$s_k(x)$表示x在k进制下各位数的和mod k的值.给出k,现有序列$s_k(1),s_k(2),...s_k(n)$.求这个序列 ...

  7. geotrellis使用(四十二)将 Shp 文件转为 GeoJson

    前言 一个多月没有写博客了,今天尝试着动笔写点. 原因很多,最重要的原因是我转行了.是的,我离开了开发岗位,走向了开发的天敌-产品经理.虽然名义上是产品经理,但是干的事情也很杂,除了不写代码,其他的都 ...

  8. python2.7.X 升级至Python3.6.X

    安装Python3 项目是在py3环境下进行编码的,正好yczhang默认的py版本是2,我们还需要安装py3才能让程序run起来,在此之前,需要安装开发工具包,因为要编译安装Python [root ...

  9. 使用Bitsadmin 命令下载文件

    如果你碰到一个 Sa权限的注入点,你可以执行dos命令,但是你发现站库分离,数据库和web不在一个服务器上,而且悲剧的是数据库服务器又是个内网,这个时候你该怎么办? 这里就需要用到Bitsadmin来 ...

  10. 网页分帧操作<frameset>,<iframe>标签

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...