首页互联网下雪桌面(桌面下雪是怎样实现的)

下雪桌面(桌面下雪是怎样实现的)

编程之家2024-06-01114次浏览

一、Win7系统设置桌面下雪屏保的方法

在使用win7系统的时候,许多用户为了让屏保更加好看,就想要设置自己喜欢的屏保,比如下雪屏保,但是许多用户并不知道要怎么设置桌面下雪屏保,为了帮助大家,小编就教大家Win7系统设置桌面下雪屏保的方法。

下雪桌面(桌面下雪是怎样实现的)

推荐:

1、下载解压缩“桌面下雪”屏保软件;

2、解压之后,将其复制到C:WindowsSystem32文件夹中;如果是64位的操作系统,可以将其保存在:C:WindowsSysWOW64文件夹中;

3、使用鼠标右键点击桌面空白处→个性化;

4、个性化→屏幕保护程序;

5、屏幕保护程序→选择桌面下雪;

下雪桌面(桌面下雪是怎样实现的)

6、点击设置→可以设置下雪的各种参数(下雪量、下雪范围),以及颜色等项目→确定;

7、先点击预览,查看效果。然后设置启动屏幕保护的时间(设置最短一分钟,观察启动效果)→应用;

8、如果没有及时调出屏幕保护程序(鼠标、键盘等不能动),可以尝试系统自动修复。在开始菜单的搜索框中输入:查找并修复透明和其他视觉效果存在的问题;

9、解决并帮助预防计算机问题→下一步;

10、正在检测问题(屏幕会亮、暗);

11、已找到问题→已禁用透明→关闭;

下雪桌面(桌面下雪是怎样实现的)

12、效果图如下,只要一动鼠标,就会停止屏保。

二、Win7系统如何设置桌面下雪屏保

方法/步骤

1

这是一款下雪的屏幕保护程序,下载之后,解压,设置一下即可。

百度云网盘分享网址:

百度云链接如果失效(系统所为),请即时留言,以便及时更新。

2

解压之后,将其复制到C:\Windows\System32文件夹中。

3

如果是64位的操作系统,可以将其保存在:C:\Windows\SysWOW64文件夹中。

然后设置一下:使用鼠标右键点击桌面空白处→个性化。

个性化→屏幕保护程序。

屏幕保护程序→选择桌面下雪。

点击设置→可以设置下雪的各种参数(下雪量、下雪范围),以及颜色等项目→确定。

先点击预览,查看效果。然后设置启动屏幕保护的时间(设置最短一分钟,观察启动效果)→应用。

如果没有及时调出屏幕保护程序(鼠标、键盘等不能动),可以尝试系统自动修复。在开始菜单的搜索框中输入:查找并修复透明和其他视觉效果存在的问题

解决并帮助预防计算机问题→下一步。

正在检测问题(屏幕会亮、暗)……

已找到问题→已禁用透明→关闭。

2让桌面逐渐开满玫瑰花的示爱器

效果图如下,只要一动鼠标,就会停止屏保。

三、桌面下雪的小程序

查看文章

让你的桌面下起小雪系列之delphi编写2008年01月13日星期日下午 01:38这个冬天又没下雪;

那就让电脑来下雪吧;

以下是用delphi的全部代码;

program Snow;

uses

Windows, Messages;

const

SnowNumber= 500;//雪点数量-1

type

SnowNode= record

Point: TPoint;//雪点位置

Color: Integer;//先前颜色

Speed: Integer;//下落速率

nMove: Integer;//下落距离

Stick: Integer;//'粘连'度

end;

var

SnowNodes: array[0..SnowNumber] of SnowNode;//雪点数组

hTimer: Integer;//'随机风向'时钟句柄

CrWind: Integer;//当前'风向'(-1~ 1)

CrStep: Integer;//当前循环步数(用于限速)

ScreenWidth, ScreenHeight: Integer;//屏幕尺寸

//取屏幕尺寸-> ScreenWidth, ScreenHeight

procedure GetScreenSize;

begin

ScreenWidth:= GetSystemMetrics(SM_CXSCREEN);

ScreenHeight:= GetSystemMetrics(SM_CYSCREEN);

end;

//'随机风向'时钟

procedure TimerProc(hWnd: HWND; uMsg: UINT; idEvent: UINT; dwTime: DWORD); stdcall;

begin

SetTimer(0, hTimer,(Random(27)+4)* 500,@TimerProc);//重设下次风向改变时间

if(CrWind<> 0) then CrWind:= 0 else CrWind:= Random(3)- 1;//修改风向

end;

//初始化雪点数组

procedure InitSnowNodes;

var

hScreenDc, J: Integer;

begin

hScreenDc:= CreateDC('DISPLAY', nil, nil, nil);

for J:= 0 to SnowNumber do

begin

SnowNodes[J].Point.X:= Random(ScreenWidth);

SnowNodes[J].Point.Y:= Random(ScreenHeight);

SnowNodes[J].Color:= GetPixel(hScreenDc, SnowNodes[J].Point.X, SnowNodes[J].Point.Y);

SnowNodes[J].Speed:= Random(5)+ 1;//几次循环作下落一次(1~5)

SnowNodes[J].nMove:= Random(SnowNodes[J].Speed)+1;//每次下落距离(1~5)

SnowNodes[J].Stick:= 30- Random(SnowNodes[J].Speed);//'粘连'度(几次循环作一次粘连判断)

end;

DeleteDC(hScreenDc);

end;

//移动雪点..

procedure MoveSnowNodes;

var

hScreenDc, I, X, Y: Integer;

begin

hScreenDc:= CreateDC('DISPLAY', nil, nil, nil);

for I:= 0 to SnowNumber do

begin

//控制雪点下降速率

if(CrStep mod SnowNodes[I].Speed)<> 0 then Continue;

//恢复上次被覆盖点

if GetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y)=$FFFFFF then

SetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y, SnowNodes[I].Color);

//根据风向作随机飘落

X:= SnowNodes[I].Point.X+ Random(3)- 1+ CrWind;

Y:= SnowNodes[I].Point.Y+ SnowNodes[I].nMove;

//积雪(停留)效果处理

if((CrStep mod SnowNodes[I].Stick)= 0)//降低积雪概率..

and( GetPixel(hScreenDc, X, Y)<> GetPixel(hScreenDc, X, Y+1))//'边缘'判断

and( GetPixel(hScreenDc, X-1, Y)<> GetPixel(hScreenDc, X-1, Y+1))

and( GetPixel(hScreenDc, X+1, Y)<> GetPixel(hScreenDc, X+1, Y+1)) then

begin

//稍微调整坐标

if GetPixel(hScreenDc, X, Y-1)= GetPixel(hScreenDc, X, Y-2) then Dec(Y)//上边缘

else if GetPixel(hScreenDc, X, Y+1)= GetPixel(hScreenDc, X, Y+2) then Inc(Y);//下边缘

Inc(X, CrWind);

//画三个点(雪花)

SetPixel(hScreenDc, X, Y,$FFFFFF);

SetPixel(hScreenDc, X+1, Y+1,$FFFFFF);

SetPixel(hScreenDc, X-1, Y+1,$FFFFFF);

//重生雪点

SnowNodes[I].Point.Y:= Random(10);

SnowNodes[I].Point.X:= Random(ScreenWidth);

SnowNodes[I].Color:= GetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y);

end else

begin

if(X< 0) or(X> ScreenWidth) or(Y> ScreenHeight) then//超出范围则重生雪点

begin

SnowNodes[I].Point.Y:= Random(10);

SnowNodes[I].Point.X:= Random(ScreenWidth);

SnowNodes[I].Color:= GetPixel(hScreenDc, SnowNodes[I].Point.X, SnowNodes[I].Point.Y);

end else

begin

//保存颜色并绘制雪点

SnowNodes[I].Color:= GetPixel(hScreenDc, X, Y);

SetPixel(hScreenDc, X, Y,$FFFFFF);

//此时保存新雪点位置

SnowNodes[I].Point.X:= X;

SnowNodes[I].Point.Y:= Y;

end;

end;

end;

DeleteDC(hScreenDc);

Inc(CrStep);

end;

var

ThreadMsg: TMsg;//标准消息结构体

Frequency: Int64;//高性能定时器频率

StartCt, EndCt: Int64;//高性能定时器计数

ElapsedTime: Extended;//时间间隔

begin

Randomize; GetScreenSize; InitSnowNodes;//初始化

QueryPerformanceFrequency(Frequency);//高性能定时器频率

hTimer:= SetTimer(0, 0, Random(5)*500,@TimerProc);//安装随机风向定时器

RegisterHotKey(0, 0, MOD_CONTROL, ORD('L'));//注册退出热键 Ctrl+L

while TRUE do//消息循环

begin

QueryPerformanceCounter(StartCt);//执行运算前计数值

if PeekMessage(ThreadMsg, 0, 0, 0, PM_REMOVE) then//取到消息

begin

case ThreadMsg.message of

WM_TIMER:

TimerProc(0, 0, 0, 0);//预设风向改变时间已到

WM_HOTKEY:

begin

KillTimer(0, hTimer);//删除随机风向定时器

UnregisterHotKey(0, 0);//删除退出热键 Ctrl+L

InvalidateRect(0, nil, TRUE);//刷新屏幕

Break;//跳出消息循环

end;

WM_DISPLAYCHANGE:

begin

GetScreenSize;//重新取屏幕尺寸

InitSnowNodes;//初始化雪点数组

end;

end;

end;

MoveSnowNodes;//移动雪点

QueryPerformanceCounter(EndCt);//执行运算后计数值

ElapsedTime:=(EndCt-StartCt)/Frequency;

if(ElapsedTime< 0.0005) then Sleep(2)//简单限速

else if(ElapsedTime< 0.0010) then Sleep(1)

else if(ElapsedTime< 0.0015) then Sleep(0);

end;

end.

从第三页开始编辑页码(页码设置怎么从第三页开始)think up是什么意思 think up等于什么短语