用VB製作螢幕保護程式 (轉)

worldblog發表於2007-12-10
用VB製作螢幕保護程式 (轉)[@more@]用VB製作螢幕保護
利用 製作螢幕保護程式非常容易。本文將詳細給大家介紹製作螢幕保護程式的方法。
---- 一. 基本思路

---- 大家都知道螢幕保護程式就是利用變換的顏色或圖形以防止不變化的螢幕畫素被損傷。所以,螢幕保護程式就是顯示不斷變化或移動的圖形,並且當有滑鼠移動或按鍵時能夠終止的程式。

---- 1. 編制螢幕保護圖形

---- 2. 隱藏滑鼠

---- 用ShowCursor 我們可以實現隱藏滑鼠。

---- 3. 檢測滑鼠和按鍵行為

---- 檢測上述行為以便退出螢幕保護程式

---- 4. Windows 螢幕保護程式的引數命令

---- /a 在顯示器屬性對話方塊中單擊了改變口令按鈕。

---- /p 每當選中顯示器屬性對話方塊中螢幕保護程式標籤時,在對話方塊顯示預覽效果。

---- /c 在顯示器屬性對話方塊中單擊了設定按鈕。

---- /s 在顯示器屬性對話方塊中單擊了預覽按鈕或螢幕保護程式被正常呼叫。

---- 5. 編譯螢幕保護程式

---- 其實任何VB應用程式都可作為螢幕保護程式來執行,但為了被Windows 95 所呼叫,需要將它作為螢幕保護程式來編譯。首先進入VB5程式設計環境,編好程式後選擇/File/Make project選單項,然後在File Name文字框中將字尾名EXE改為SCR。最後單擊OK按鈕,將生成的SCR拷到Windows目錄下,就完成了螢幕保護程式的建立。

---- 二. 例項

---- 下面就用一個例項給大家詳細說明螢幕保護程式的製作。

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
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座標
If App.PrevInstance = True Then
‘用APP的PrevInstance屬性
Unload Me
‘防止同時執行螢幕保護程式的兩個例項
Exit Sub
End If
Case Ucase$(Left$(Command$, 2))
‘裝載命令列引數
Case "/S" ‘在顯示器屬性對話方塊中單擊了
預覽按鈕或螢幕保護程式被系統正常呼叫。
Show
‘全屏顯示Form1窗體
Ranize
‘初始化隨機數生成器
X = ShowCursor(False)
‘隱藏滑鼠
BackColor = vbBlack
Do
Timer2.Enabled = True
‘啟動Timer2 ,顯示螢幕保護滾動文字
DoEvents
‘轉讓控制權,以便檢測滑鼠和按鍵行為
L 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 >= 11810 Then
lleft = 0
Lab1.Top = Int(Rnd * 7000)
End If
Lab1.Left = lleft
Timer2.Enabled = False
End Sub

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990770/,如需轉載,請註明出處,否則將追究法律責任。

相關文章