top
Loading...
用VB制作屏幕保護程序
p>利用VB制作屏幕保護程序非常容易。本文將詳細給大家介紹制作屏幕保護程序的方法。
一、 基本編程思路

大家都知道屏幕保護程序就是用變換的顏色或圖形以防止屏幕熒光粉被損傷。當有鼠標移動或按鍵時能夠終止它。
1. 編制屏幕保護圖形
2. 隱藏鼠標
用ShowCursor Windows API 函數我們可以實現隱藏鼠標。
3. 檢測鼠標和按鍵行為
檢測鼠標行為以便退出屏幕保護程序。
4. Windows 調用屏幕保護程序的參數命令
/a 在顯示器屬性對話框中單擊它可改變口令按鈕。
/p 每當選中顯示器屬性對話框中屏幕保護程序標簽時,在對話框顯示預覽效果。
/c 在顯示器屬性對話框中單擊它進行設置按鈕。
/s 在顯示器屬性對話框中單擊則預覽按鈕或屏幕保護程序被系統正常調用。
5. 編譯屏幕保護程序
其實任何VB應用程序都可作為屏幕保護程序來運行,但為了被Windows 95 所調用,需要將它作為屏幕保護程序來編譯。首先進入VB5編程環境,編好程序后選擇/File/Make project菜單項,然后在File Name文本框中將后綴名EXE改為SCR。最后單擊OK按鈕,將生成的SCR文件拷到Windows目錄下,就完成了屏幕保護程序的創建。
二、實例

下面就用一個實例給大家詳細說明屏幕保護程序的制作。
名稱 屬性值
Form1
BorderStyle=0-None ′取消標題欄和最大化、最小化按鈕
WindowState=2-Maximized ′窗體最大化
Timer
Name=Timer1
Interval=1 ′時間間隔為1毫秒
Enabled=False
Timer
Name=Timer2
Interval=50
Enabled=False
Label
Name=lab1 Caption=電腦愛好者
Option Explicit
Dim quitflag As Boolean ′聲明終止程序標志變量
Dim lleft
′聲明隱藏或顯示鼠標的API函數
Private Declare Function ShowCursor Lib ″user32″ (ByVal bShow As Long) As Long
′檢測鼠標單擊或移動
Private Sub Form_Click()
quitflag = True
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static xlast, ylast
Dim xnow As Single
Dim ynow As Single
xno X
ynow = Y
If xlast = 0 And ylast = 0 Then
xlast = xnow
ylast = ynow
Exit Sub
End If
If xnow $#@60;$#@62; xlast Or ynow $#@60;$#@62; ylast Then
quitflag = True
End If
End Sub
′檢測按鍵
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
quitflag = True
End Sub
Private Sub Form_Load()
Dim X As Long
lleft = 0 ′橫向滾動文字的起始X坐標
If App.PrevInstance = True Then ′用APP對象的PrevInstance屬性
Unload Me ′防止同時運行屏幕保護程序的兩個實例
Exit Sub
End If
Select Case UCaseS(LeftS(CommandS, 2)) ′裝載命令行參數
Case ″/S″ ′在顯示器屬性對話框中單擊了預覽按鈕或屏幕保護程序被系統正常調用。
Show ′全屏顯示Form1窗體
Randomize ′初始化隨機數生成器
X = ShowCursor(False) ′隱藏鼠標
BackColor = vbBlack
Do
Timer2.Enabled = True ′啟動Timer2 ,顯示屏幕保護滾動文字
DoEvents ′轉讓控制權,以便檢測鼠標和按鍵行為
Loop Until quitflag = True ′運行屏幕保護滾動文字直至有鼠標和按鍵行為
Timer2.Enabled = False ′終止滾動文字
Timer1.Enabled = True ′啟動Timer1,退出屏幕保護程序
Case Else
Unload Me
Exit Sub
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim X
X = ShowCursor(True) ′顯示鼠標
End Sub
Private Sub Timer1_Timer()
Unload Me ′退出屏幕保護程序
End Sub
Private Sub Timer2_Timer() ′顯示橫向滾動文字
lleft = lleft + 100
If lleft $#@62;= 11810 Then
lleft = 0
Lab1.Top = Int(Rnd * 7000)
End If
Lab1.Left = lleft
Timer2.Enabled = False
End Sub

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗