java如何编写屏幕保护程序_屏幕保护程序的编写

news/2024/10/20 5:39:43/

对于屏幕保护程序,大家应该不会陌生。屏幕保护程序的后缀名是.scr,其实它就是一个可执行的.exe文件。

VC提供了一个支持屏幕保护的开发库scrnsave.lib,这个库已经定制了一个屏幕保护程序的框架结构,开发者只需要在完成相应的函数和提供相应的资源就可以写出自己的屏幕保护程序。

讲到这里,我想你对屏幕保护程序到底是什么东东应该有了一个比较清楚的认识了吧!

在VC中,要完成一个屏幕保护程序的编写,

我们所需要完成的函数有:

//  屏幕保护程序的窗口函数,几乎所有的操作都在这里进行

BOOL  WINAPI  ScreenSaverProc(

HWND  hWnd,

UINT  message,

WPARAM  wParam,

LPARAM  lParam);

//  屏幕保护设置对话框的窗口函数

BOOL  WINAPI  ScreenSaverConfigureDialog(

HWND  hDlg,

UINT  message,

WPARAM  wParam,

LPARAM  lParam);

//  在这里注册特殊的屏幕保护设置对话框的窗口类

BOOL  WINAPI  RegisterDialogClasses(

HANDLE  hInst);

好了,介绍了以上的内容,接下来我们就写一个最简单的屏幕保护程序:黑屏

跟着我,一步一步做吧。

首先,我们打开VC,建立一个Win32  Application  的工程。工程的名字就叫做SimpleScr好了。

接下来,向工程中加入一个对话框资源。(这个对话框当我们在桌面的属性中设置屏保时,点击“设置”时会看到)步骤如下:

1.  选择菜单  插入->资源类型  出现对话框,在对话框中选择  “Dialog”资源  然后  新建。

2.  保存资源  文件->保存  出现“另存为”对话框,在对话框中写入要保存的文件的名称:

SimpleScr.rc。

3.  将SimpleScr.rc  文件  和  resource.h  文件添加到工程中。

4.  将对话框的ID改为:  DLG_SCRNSAVECONFIGURE

5.  编辑我们的对话框,在对话框中加入版本信息了什么的,自由发挥了  :)

6.  打开resource.h  文件修改,加入代码:

#include  

并去掉编辑器自动加入的  #define  DLG_SCRNSAVECONFIGURE  101  这一行

因为DLG_SCRNSAVECONFIGURE  已经在  scrnsave.h中定义过了。

现在我们就开始改写前面说过的scrnsave.lib中的函数了,步骤如下:

1.  向工程中加入文件SimpleScr.cpp  ,  文件的内容如下:

//  程序需要的头文件

#include  

#pragma  comment(lib,"scrnsave.lib")  //使用库文件

#include  "resource.h"

LRESULT  CALLBACK  ScreenSaverProc(HWND  hWnd,  UINT  message,  WPARAM  wParam,  LPARAM  lParam)

{

switch  (message)

{

case  WM_PAINT:

{

PAINTSTRUCT  ps;

HDC  hDC  =  BeginPaint(hWnd,  &ps);

SetBkMode(hDC,  TRANSPARENT);

SetTextColor(hDC,  RGB(0x33,  0xcc,  0));

TextOut(hDC,  150,  150,  "WWW.VCKBASE.COM",  15);

EndPaint(hWnd,  &ps);

}

break;

case  WM_DESTROY:

PostQuitMessage(0);

break;

default:

//  缺省的消息处理函数

return  DefScreenSaverProc(hWnd,message,wParam,lParam);

}

return  0;

}

BOOL  WINAPI  ScreenSaverConfigureDialog(HWND  hDlg,  UINT  message,  WPARAM  wParam,  LPARAM  lParam)

{

switch  (message)  {

case  WM_COMMAND:

//处理  确定  按钮

if  (LOWORD(wParam)  ==  IDOK)  {

EndDialog(hDlg,  LOWORD(wParam));

return  TRUE;

}

else

{

//系统的处理退出命令

EndDialog(hDlg,  LOWORD(wParam));

return  TRUE;

}

break;

}

return  FALSE;

}

BOOL  WINAPI  RegisterDialogClasses(HANDLE  hInst)

{

return  TRUE;

}

接下来,所需要做的就是保存文件,编译,还有就是将编译通过的文件后缀改为.scr  并将它拷贝到系统目录下看看运行结果了。


http://www.ppmy.cn/news/123108.html

相关文章

Win10极简fliqlo时钟屏保(附下载链和安装教程)

windows免费翻页时钟屏保Fliplt,真的太酷了,官方产品图如下。 下载地址:https://fliqlo.com/ 下载后7zip打开,正常应该有个fliqlo setup的exe安装程序的东西,但发现解压后就是图片下面的那个fliqlo.src的…

Aerial for Mac(mac高清鸟瞰屏幕保护程序)v2.1.3最新版

在寻找mac屏保软件吗?MacW小编为您首推Aerial 下载,这是一款专为mac用户制作的屏幕保护程序,该屏保视频取材自苹果零售店Apple TV的专用屏保,全部由苹果自制的航拍影片,里面的每一个航拍都是不可多得的精美作品&#x…

什么是隐私计算?隐私计算技术路线

一、什么是隐私计算 隐私计算是多种技术的统称,目的是为了让多个数据拥有者,在不暴露数据本身的前提下,实现数据的共享、互通、计算、建模,最终产生超出自身数据的价值,同时保证数据不泄露给其他参与方。 相比传统数…

1计算机体系概述_1.1操作系统的基本概念

1.1.1操作系统的概念 在信息化时代,软件是计算机系统的灵魂,而作为软件核心的操作系统,已与现代计算机系统密不可分、融为一体。 操作系统(OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源…

教会你----如何烧录Arduinod代码进入ESP8266 MCU中,让你清楚的了解这个烧录方式的正确操作。

本次开发板为ESP8266 MUC 以下视频是烧录的操作,专给小白的视频 . .分隔符....................................................................................................... . .主要在 RST按久一点, 在放手的一瞬间接着按下 Flash …

解决 orbslam3 保存地图时概率性崩溃保存失败的问题,段错误(核心已转储)Segmentation fault(core dumped)

1、问题 orbslam3 新增了地图保存、加载复用的功能。可以对环境慢慢建图,后续任务直接使用旧地图定位减少算力消耗。 ORB_SLAM3地图保存与加载:https://blog.csdn.net/weixin_44675820/article/details/125076927 但是保存地图时高概率出现 段错误&…

充电桩检查设备TK4800充电桩现校仪检定装置

电压输出/测量范围:100 V~1150 V,7位显示 电流输出/测量范围: 0.1 A~300 A,7位显示 电压输出最大负载能力: 20 VA,电流输出最大负载能力:750 VA 充电桩检查设备保护功…

PCL 点读机,哪里不会查哪里!

http://pointclouds.org/documentation/index.html