① 能使桌面下雪的小程序程序~

http://www.55188.com/thread-1864493-1-1.html
要先免費注冊一下這個論壇的會員,然後你就能下載了,很快的一會就注冊好!

② 桌面下雪的小程序

查看文章
讓你的桌面下起小雪系列之編寫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
procere GetScreenSize;
begin
ScreenWidth := GetSystemMetrics(SM_CXSCREEN);
ScreenHeight := GetSystemMetrics(SM_CYSCREEN);
end;
// '隨機風向'時鍾
procere 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;
// 初始化雪點數組
procere 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;
// 移動雪點 ..
procere 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.

③ 求一個電腦桌面上飄小雪花然後堆起來的小程序

已發郵箱,別被當做垃圾了!

【電腦應用·桌面設置專面面觀·各取所需屬】http://blog.sina.com.cn/s/blog_4a1faae60102dw7a.html

④ 關於桌面飄雪花的程序的源碼

呵呵,聖誕禮物的把!以前聖誕節的時候別人給我發過。
替你找到了:http://www.aijingru.com/xue.rar

⑤ 求下雪桌面小程序

http://www.xs4all.nl/~janswaal/WinSnow/
我起碼下了部下20個,全都有毒,最後面才找到這個英文版。內
效果很好,某些功能容要注冊,注冊很簡單,只要輸下用戶名和密碼就行。
本來想找個漢化的,不過實在沒耐性了。國內的網站像這些小東西基本都是有毒的。。
反正都很簡單,英文的照樣看得懂的。

⑥ 求聖誕電子禮物。小程序~就是桌面飄大雪花,還有背景音樂的那種...急需!~謝謝~

這不是電子禮物,這是程序禮物,這個其實就是屏幕的一個程序,你現在一個xp變臉程序即可。

⑦ 是exe格式的 那種 桌面下雪的小程序 怎麼製作

用vb編程,知道是什麼吧,然後在裡面輸代碼:
'源代碼
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
'GetDC()功能是獲取指定窗體的設備場景的句柄(hDC),用參數0則可以獲取整個屏幕的場景句柄
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
'GetPixel用於取得場景(這里是整個屏幕)中某點的顏色值
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
'SetPixel用於設置場景(這里是整個屏幕)中某點的顏色值
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
'釋放由GetDC()獲取的設備場景句柄,否則可能造成系統鎖死
Private Declare Function InvalidateRect& Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long)
'清理窗口雪花

Private Type POINTAPI '定義坐標點結構
x As Long
y As Long
End Type

Private Type RECT '定義「區域」數據結構,但實際上並沒有用到,因為僅需在函數InvalidateRect中傳遞一個空的RECT參數
left As Long
top As Long
right As Long
bottom As Long
End Type
Dim rect1 As RECT

Private Const ScrnWidth = 1024 '屏幕寬度(單位:像素)
Private Const ScrnHight = 768 '屏幕高度(單位:像素)
Private Const SnowCol = &HFEFFFE '雪花顏色
Private Const SnowColDown = &HFFFFFF '積雪顏色
Private Const SnowColDuck = &HFFDDDD '深色積雪顏色
Private Const SnowNum = 500 '同一時間飄動的雪花數量

Dim hDC1 As Long '存儲桌面窗口設備句柄
Dim pData(SnowNum) As POINTAPI '存儲每個雪花的位置信息
Dim pColor(SnowNum) As Long '存儲畫出雪花前屏幕原來的顏色
Dim Vx As Integer '雪花總體水平飄行速度
Dim Vy As Integer '雪花總體垂直下落速度
Dim PVx As Integer '單個雪花實際水平飄行速度
Dim PVy As Integer '單個雪花實際垂直飄行速度

'初始化雪花位置
Private Sub InitP(i As Integer)
pData(i).x = Rnd() * ScrnWidth
pData(i).y = Rnd() * 2
pColor(i) = GetPixel(hDC1, pData(i).x, pData(i).y) '取得屏幕原來的顏色值
End Sub

'取得某一點與周圍點的對比度,確定是否在此位置堆積雪花
Private Function GetContrast(i As Integer) As Long
Dim ColorCmp As Long '存儲用作對比的點的顏色值
Dim tempR As Long '存儲CorlorCmp的紅色部分,下同
Dim tempG As Long
Dim tempB As Long
Dim Slope As Integer '存儲雪花飄落方向:Vx/Vy

'計算雪花飄落方向
If PVy <> 0 Then
Slope = PVx / PVy
Else
Slope = 2
End If

'根據雪花飄落方向決定取哪一點作對比點,
'若PVx/PVy在-1到1之間,即Slope=0,就取正下面的象素點
'若PVx/PVy>1,取右下方的點,PVx/PVy<-1則取左下方
If Slope = 0 Then
ColorCmp = GetPixel(hDC1, pData(i).x, pData(i).y + 1)
Else
If Slope > 1 Then
ColorCmp = GetPixel(hDC1, pData(i).x + 1, pData(i).y + 1)
Else
ColorCmp = GetPixel(hDC1, pData(i).x - 1, pData(i).y + 1)
End If
End If

'確定當前位置沒有與另一個雪花重疊,否則返回0,用於防止由於不同雪花重疊造成雪花亂堆
If ColorCmp = SnowCol Then
GetContrast = 0
Exit Function
End If

'分別獲取ColorCmp與對比點的藍、綠、紅部分的差值
tempB = Abs((ColorCmp And &HFF0000) - (pColor(i) And &HFF0000)) / &H10000
tempG = Abs((ColorCmp And &HFF00&) - (pColor(i) And &HFF00&)) / &H100&
tempR = Abs((ColorCmp And &HFF&) - (pColor(i) And &HFF&))

'返回對比度值
GetContrast = (tempR + tempG + tempB) / 3
End Function
'畫出一幀,即重畫所有雪花位置一次
Private Sub DrawP()
Dim i As Integer
For i = 0 To SnowNum

'防止雪花重疊造成干擾
If pColor(i) <> SnowCol Then
'還原上一個位置的顏色
SetPixel hDC1, pData(i).x, pData(i).y, pColor(i)
End If

'設置新的位置,i Mod 3用於將雪花分為三類採用不同速度,以便形成層次感
PVx = Rnd() * 2 - 1 + Vx * (i Mod 3)
PVy = Vy * (i Mod 3 + 1)
pData(i).x = pData(i).x + PVx
pData(i).y = pData(i).y + PVy
'取得新位置原始顏色值,用於下一步雪花飄過時恢復此處顏色
pColor(i) = GetPixel(hDC1, pData(i).x, pData(i).y)

'如果獲取顏色失敗,表明雪花已飄出屏幕,重新初始化
If pColor(i) = -1 Then
InitP i
Else
'否則若雪花沒有重疊
If pColor(i) <> SnowCol Then
'若對比度較小(即不能堆積),就畫出雪花
'Rnd()>0.3用於防止某些連續而明顯的邊界截獲所有雪花
If Rnd() > 0.3 Or GetContrast(i) < 50 Then
SetPixel hDC1, pData(i).x, pData(i).y, SnowCol
'否則表明找到明顯的邊界,畫出堆積的雪,並初始化以便畫新的雪花
Else
SetPixel hDC1, pData(i).x, pData(i).y - 1, SnowColDuck
SetPixel hDC1, pData(i).x - 1, pData(i).y, SnowColDuck
SetPixel hDC1, pData(i).x + 1, pData(i).y, SnowColDown
InitP i
End If
End If
End If
Next
End Sub

Private Sub Form_Load()
Dim j As Integer

Me.Caption = "桌面飄雪" '設置窗口標題

'設置計時器,Timer1用於畫單幀,Timer2用於風向變化
Timer1.Enabled = True
Timer1.Interval = 10
Timer2.Enabled = True
Timer2.Interval = 2000

Randomize '初始化隨機數種子

hDC1 = GetDC(0) '獲取桌面窗口設備場景句柄

'初始化整個屏幕
For j = 0 To SnowNum
pData(j).x = Rnd() * ScrnWidth
pData(j).y = Rnd() * ScrnHight
pColor(j) = GetPixel(hDC1, pData(j).x, pData(j).y)
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
ReleaseDC 0, hDC1 '釋放桌面窗口設備句柄
InvalidateRect 0, rect1, 0 '清除所有雪花,恢復桌面
End Sub

Private Sub Timer1_Timer()
DrawP '畫出一幀
End Sub

Private Sub Timer2_Timer()
'改變風向
Vx = Rnd() * 4 - 2
Vy = Rnd() + 2
End Sub

'完,最後,需要兩個Timer:Timer1、Timer2。

不過你要是沒學過vb那就有點困難了……做之前還是先找本關於Vb的書看看吧!

⑧ 求一個桌面上飄小雪花然後堆起來的小程序

這個好相不是一個小程序,是08年上下的電腦系統里自己帶的。屏保里的

⑨ 桌面下雪的小程序是用什麼編程語言寫的可不可以用C語言寫,需要用到哪些技術,知識,

opengl的動畫效果編程,C語言就可以了哈。

⑩ 請問在自己桌面上飄雪花的那個小程序是什麼啊

軟體我也有,叫Snow for Windows.
很漂亮。在網路上搜一下吧。