Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg _
As Long, ByVal wParam As Long, ByVal lParam As Long) _
As Long
Private Sub Form_Load()
下面就用一个实例给大家详细说明屏幕保护程序的制作。
名称 属性值
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
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
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 >= 11810 Then
lleft = 0
Lab1.Top = Int(Rnd * 7000)
End If
Lab1.Left = lleft
Timer2.Enabled = False
End Sub
(黑龙江 王兵 王波)