本程序启动后,出现蓝屏,模拟蓝屏死机情形。此时,用户无法使用开始菜单、任务管理器,无法操作任何程序,只能干着急。
1 秒钟后,在蓝屏的背景上显示:Your Windows is died
5 秒钟后,显示:Windows 警告 内存出现严重错误
10 秒钟后,显示并计数:警告 硬盘错误,无法正常运行 Windows,Windows 正在试图修复所有错误,请等待 100 秒……
25 秒钟后,显示:警告 由于你使用了盗版操作系统 微软惩罚你:定期死机
此后,这 4 条信息交替显示
结束本程序的方式有两个:
1.用鼠标单击屏幕左上角,连续 5 次(左上角 20 个像素范围的区域,大约 1 平方厘米的大小)
2.到程序设定的时间后自动结束,默认 120 秒。
下面是程序运行截图:
'''以下是窗体代码,在 VB6.0 上调试通过:
' 一、在窗体添加一个控件:Timer1,不必设置任何属性,采用默认属性即可
' 二、在属性窗口将窗体的 BorderStyle 属性设置为 0
'本人原创,转载请注明出处:http://hi.baidu.com/100bd/blog/item/633b6467ea2bab28aa184c75.html
Dim ctCi As Long, ctT As Long, ctExitT As Long, ctStr() As String, ctStrS As Long, ctExit As Boolean
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Sub Form_Load()
ctExitT = 120 '程序自动退出的时间(秒),可根据自己的喜好设定
Me.BackColor = RGB(0, 0, 255): Me.Caption = "蓝屏死机"
Me.AutoRedraw = True: Me.WindowState = 2
Me.Font.Size = 21: Me.ForeColor = &HFFFFFF
Timer1.Interval = 50: Timer1.Enabled = True
ReDim ctStr(0 To 0)
End Sub
Private Sub Form_Click()
If ctExit Then Unload Me
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'单击左上角 20 个像素范围
Dim S1 As Single
S1 = Me.ScaleX(20, 3, Me.ScaleMode)
If X > S1 Or Y > S1 Then ctCi = 0: Exit Sub
ctCi = ctCi + 1
If ctCi > 4 Then Call ExitInf
End Sub
Private Sub ExitInf()
Timer1.Enabled = False: Me.WindowState = 0: ctCi = 0: ctExit = True
Me.Move Screen.Width * 0.1, Screen.Height * 0.1, Screen.Width * 0.8, Screen.Height * 0.8
ctStrS = -1
AddStr "哈哈,一个玩笑"
AddStr "结束本程序:单击蓝色区任意位置"
Call ShowStr
End Sub
Private Sub Timer1_Timer()
Static Ci As Long
WinInTop Me.hWnd, True '始终将窗体保持在最前面,使用户无法使用开始菜单、任务管理器,无法操作任何程序
Ci = Ci + 1
If Ci * Timer1.Interval < 1000 Then Exit Sub '保证一秒钟计数一次
Ci = 0: ctExitT = ctExitT - 1: ctT = ctT + 1
If ctExitT < 1 Then Call ExitInf: Exit Sub
Select Case ctT
Case 1
ctStrS = -1
AddStr "Your Windows is died"
Call ShowStr
Case 5
ctStrS = -1
AddStr "Windows 警告"
AddStr "内存出现严重错误"
Call ShowStr
Case 10 To 24
ctStrS = -1
AddStr "警告"
AddStr "硬盘错误,无法正常运行 Windows"
AddStr "Windows 正在试图修复所有错误"
AddStr "请等待 " & ctExitT & " 秒……"
Call ShowStr
Case 25
ctStrS = -1
AddStr "警告"
AddStr "由于你使用了盗版操作系统"
AddStr "微软惩罚你:定期死机"
Call ShowStr
Case Else
If ctT > 30 Then ctT = 0
End Select
End Sub
Private Sub AddStr(nStr)
ctStrS = ctStrS + 1
ReDim Preserve ctStr(0 To ctStrS): ctStr(ctStrS) = nStr
End Sub
Private Sub ShowStr()
Dim I As Long, S1 As Single, Y0 As Single, Y As Single, Hj As Single
S1 = Me.TextHeight("A"): Hj = 0.5 '行高和行距
Y0 = S1 * (1 + Hj) * (1 + ctStrS) - S1 * Hj
Y0 = (Me.ScaleHeight - Y0) * 0.5
Me.Cls
For I = 0 To ctStrS
Me.CurrentX = (Me.ScaleWidth - Me.TextWidth(ctStr(I))) * 0.5
Me.CurrentY = Y0 + I * S1 * (1 + Hj)
Me.Print ctStr(I)
Next
End Sub
Private Sub WinInTop(nWnd As Long, Optional InTop As Boolean)
Const HWND_NoTopMost = -2 '取消在最前
Const HWND_TopMost = -1'最上
Const SWP_NoSize = &H1'wFlags 参数
Const SWP_NoMove = &H2
Const SWP_NoZorder = &H4
Const SWP_ShowWindow = &H40
Const SWP_HideWindow = &H80
Dim nIn As Long
If InTop Then nIn = HWND_TopMost Else nIn = HWND_NoTopMost
SetWindowPos nWnd, nIn, 0, 0, 0, 0, SWP_NoSize + SWP_NoMove
End Sub
'本人原创,转载请注明出处:http://hi.baidu.com/100bd/blog/item/633b6467ea2bab28aa184c75.html