用VB制作屏幕保護(hù)程序
發(fā)布時間:2008-08-06 閱讀數(shù): 次 來源:網(wǎng)樂原科技
利用Visual Basic 制作屏幕保護(hù)程序非常容易。本文將詳細(xì)給大家介紹制作屏幕保護(hù)程序的方法。
---- 一. 基本編程思路
---- 大家都知道屏幕保護(hù)程序就是利用變換的顏色或圖形以防止不變化的屏幕像素被損傷。所以,屏幕保護(hù)程序就是顯示不斷變化或移動的圖形,并且當(dāng)有鼠標(biāo)移動或按鍵時能夠終止的程序。
---- 1. 編制屏幕保護(hù)圖形
---- 2. 隱藏鼠標(biāo)
---- 用ShowCursor Windows API 函數(shù)我們可以實現(xiàn)隱藏鼠標(biāo)。
---- 3. 檢測鼠標(biāo)和按鍵行為
---- 檢測上述行為以便退出屏幕保護(hù)程序
---- 4. Windows 調(diào)用屏幕保護(hù)程序的參數(shù)命令
---- /a 在顯示器屬性對話框中單擊了改變口令按鈕。
---- /p 每當(dāng)選中顯示器屬性對話框中屏幕保護(hù)程序標(biāo)簽時,在對話框顯示預(yù)覽效果。
---- /c 在顯示器屬性對話框中單擊了設(shè)置按鈕。
---- /s 在顯示器屬性對話框中單擊了預(yù)覽按鈕或屏幕保護(hù)程序被系統(tǒng)正常調(diào)用。
---- 5. 編譯屏幕保護(hù)程序
---- 其實任何VB應(yīng)用程序都可作為屏幕保護(hù)程序來運行,但為了被Windows 95 所調(diào)用,需要將它作為屏幕保護(hù)程序來編譯。首先進(jìn)入VB5編程環(huán)境,編好程序后選擇/File/Make project菜單項,然后在File Name文本框中將后綴名EXE改為SCR。最后單擊OK按鈕,將生成的SCR文件拷到Windows目錄下,就完成了屏幕保護(hù)程序的創(chuàng)建。
---- 二. 實例
---- 下面就用一個實例給大家詳細(xì)說明屏幕保護(hù)程序的制作。
Option Explicit
Dim quitflag As Boolean ‘聲明終止程序標(biāo)志變量
Dim lleft
‘聲明隱藏或顯示鼠標(biāo)的API函數(shù)
Private Declare Function ShowCursor Lib "user32"
(ByVal bShow As Long) As Long
‘檢測鼠標(biāo)單擊或移動
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
xnow = X
ynow = Y
If xlast = 0 And ylast = 0 Then
xlast = xnow
ylast = ynow
Exit Sub
End If
If xnow < > xlast Or ynow < > 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坐標(biāo)
If App.PrevInstance = True Then
‘用APP對象的PrevInstance屬性
Unload Me
‘防止同時運行屏幕保護(hù)程序的兩個實例
Exit Sub
End If
Select Case Ucase$(Left$(Command$, 2))
‘裝載命令行參數(shù)
Case "/S" ‘在顯示器屬性對話框中單擊了
預(yù)覽按鈕或屏幕保護(hù)程序被系統(tǒng)正常調(diào)用。
Show
‘全屏顯示Form1窗體
Randomize
‘初始化隨機數(shù)生成器
X = ShowCursor(False)
‘隱藏鼠標(biāo)
BackColor = vbBlack
Do
Timer2.Enabled = True
‘啟動Timer2 ,顯示屏幕保護(hù)滾動文字
DoEvents
‘轉(zhuǎn)讓控制權(quán),以便檢測鼠標(biāo)和按鍵行為
Loop Until quitflag = True
‘運行屏幕保護(hù)滾動文字直至有鼠標(biāo)和按鍵行為
Timer2.Enabled = False
‘終止?jié)L動文字
Timer1.Enabled = True
‘啟動Timer1,退出屏幕保護(hù)程序
Case Else
Unload Me
Exit Sub
End Select
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim X
X = ShowCursor(True)
‘顯示鼠標(biāo)
End Sub
Private Sub Timer1_Timer()
Unload Me
‘退出屏幕保護(hù)程序
End Sub
Private Sub Timer2_Timer()
顯示橫向滾動文字
lleft = lleft + 100
If lleft >= 11810 Then
lleft = 0
Lab1.Top = Int(Rnd * 7000)
End If
Lab1.Left = lleft
Timer2.Enabled = False
End Sub