admin管理员组

文章数量:1537385

2024年5月15日发(作者:)

用C++Builder开发Windows下的屏保

摘要:本文通过一个具体的程序演示了Windows下的屏幕保护程序的实现过程。

一. 引言

视窗系统下的屏幕保护程序是一个基于命令行(Command Line)的应用程序。当屏保程序被调用时操作系

统就用具体的命令行执行该程序。本文组织和处理了所有的命令行,包括“/p”,“/s”,“/c”,“/a”,其中“/

p”表示让屏保在预览窗口中显示;“/s”表示真正运行屏保;“/c”表示调用设置对话框;而“/a”表示调用

密码设置对话框(WinNT中无效)。本程序尽可能简单地实现一个全功能的屏保,运行Windows的屏保设

置程序时你既可以修改密码(WinNT中无效)又可以设置图片显示的频率并把频率数值保存到注册表里。

当屏保运行时图片以你设置的频率改变显示位置。笔者还留了个作业给读者,请看图1中的选择图片文件

夹这个项目,按下浏览按钮可以设置图片的路径,笔者已经实现了浏览按钮的功能并

把得到的路径也保存到注册表中,并让屏保启动时读picdir的值,picdir等于"no"时的代码笔者已实现了,

picdir不等于"no"时的代码由读者实现。也就是让读者实现一个能把picdir目录里的图片轮流显示的屏保程

序。

二. 实现方法

首先介绍几个API函数。

WinMain函数:

int WINAPI WinMain(

HINSTANCE hInstance, // 当前实例句柄

HINSTANCE hPrevInstance, // 前一个实例句柄

LPSTR lpCmdLine, // 指向命令行参数的指针(本程序要利用的参数)

int nCmdShow // 窗口的状态

);

GetWindowLong函数:得到指定窗口信息的函数

LONG GetWindowLong(

HWND hWnd, //窗/口句柄

int nIndex //指/定返回的信息

);

SetWindowLong函数:改变窗口属性

LONG SetWindowLong(

HWND hWnd, //窗/口句柄

int nIndex, // 指定要设定的值的信息

LONG dwNewLong // 新值

);

SetParent函数:改变指定窗口的父窗口

HWND SetParent(

HWND hWndChild, //要/改变父窗体的窗口句柄

HWND hWndNewParent //新/的父窗体的句柄

);

GetClientRect函数:得到窗口的客户区

BOOL GetClientRect(

HWND hWnd, // 窗口句柄

LPRECT lpRect //RECT/结构的地址

);

SetWindowPos函数:改变窗口的大小,位置,顶级窗口等

BOOL SetWindowPos(

HWND hWnd, // 窗口句柄

HWND hWndInsertAfter, // 布置窗口顺序的句柄(Z order)

int X, // horizontal position

int Y, // vertical position

int cx, // width

int cy, // height

UINT uFlags // 窗口位置等标记

);

SystemParametersInfo函数:访问或设置系统级的参数

BOOL SystemParametersInfo(

UINT uiAction, // 指定要获取或设置的系统参数

UINT uiParam, // depends on action to be taken

PVOID pvParam, // depends on action to be taken

UINT fWinIni // 用户配置文件是否改变标记

);

ShowCursor函数:显示或隐藏光标

int ShowCursor(

本文标签: 设置程序实现函数图片