舰娘出击360邀请码:整人VB小程序:蓝屏死机

来源:百度文库 编辑:九乡新闻网 时间:2024/05/01 10:55:39

 

  本程序启动后,出现蓝屏,模拟蓝屏死机情形。此时,用户无法使用开始菜单、任务管理器,无法操作任何程序,只能干着急。
  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