打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
整人VB小程序:蓝屏死机

 

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

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
如何使用Windows Media Encoder抓取摄象头视频并且保存为视频文件??
完整的注册表操作实例 VBS脚本
vb简单控制音量大小及静音的方法
WINDOWS死机代码解析
Windows 10正式加入死机“绿屏”:仅限内测版本
vb访问SQL Server 的几种常用方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服