
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 UCase$(Left$(Command$, 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
---- 以上程序在HP 586/133上调试通过。
我说说屏保程序原理
首先屏保程序实际是exe文件,
把编译好的exe文件的扩展名改成scr,放到windows的system32就可以被windows选择作为屏保
例如1.exe改成1.scr
剩下的编程就是exe文件的开发问题
实现程序的动画效果,场景切换等功能
实现响应按键 和鼠标活动退出等
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)