给电脑装个监视器--VB编程一例

原创 2001年08月31日 14:58:00
 

给电脑装个监视器--VB编程一例

--------------------------------------------------------------------------------
  当你不在你的机器旁边时,你是否会担心有人在你的机器上运行了程序,给你的机器带来损坏;或有小孩子在你的电脑上胡闹。你是否想到设计一个监视系统的程序,可以发现有人在你的机器上运行了哪些不当的程序,或当有小孩子在你的机器上玩游戏时,立刻强制关闭游戏。读完了本文,你就可以着手去做了。

  一、设置 OnTimer 事件

  要实现监视系统,首先要实现的是 OnTimer 事件,就是要程序每隔一段时间去检查一下当前系统中有哪些程序在运行。
  你可装载 Timer 控件,设置 Interval 属性为“60000”
  这样系统差不多会每隔1分钟就会检查一下当前系统有哪些程序正在运行。
  如果你觉得间隔时间太短,可以改用如下代码:
  Private Sub Timer1_Timer()
  Dim n As Integer
  n = n + 1
  If n = 2 Then″检查″ ′这里设置为2分钟,你可自己改
  End Sub

  二、监视系统的运行

  接下来的问题是怎样去检查当前系统中有哪些程序在运行。
  方法一:我们知道,Windows 程序基本上都是以窗口的形式运行的,每个程序都对应一个主窗口和若干子窗口,我们只要用 API函数 GetWindow 获取每个程序的主窗口的句柄 HWND,接着用 API 函数 GetWindowText 得到这些窗口的标题,就可以判断到底是哪些程序在运行了。
  方法二:使用 API 函数 FindWindow 直接查找
  我们这里就用方法二(比较简单)

  三、关闭程序

  发现不适当的程序,关闭它,可以用 API 函数 PostMessage

  四、程序示例

  下面给出一个实例,它是用 VB 5.0 编制而成的。本程序每隔 2 分钟检查一下窗口。如果运行的是扫雷红心大战等游戏,就强行关闭它,并发出警告。具体程序代码如下:

  1、建立基于对话框的应用程序,标题为系统监视器,装载 2 CommandButton 控件,Caption 属性分别为:开始监视程序结束

  2、首先声明API 函数 FindWindow 及程序所需要的各变量
  Private Declare Function FindWindow Lib ″user32″ Alias ″FindWindowA″(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  Private Declare Function PostMessage Lib ″user32″ Alias″PostMessageA″ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  Const WM-CLOSE = &H10
  Const WM-QUIT = &H12
  Dim Handle As Integer
  Dim n As Integer

  3、定义关闭程序窗口的子程序
  Sub CloseWin() ′关闭指定窗口
  Dim WinText(1 To 3) As String
  Dim i As Integer
  WinText(1) = ″扫雷
  关闭下面的3个游戏,各位可以自己定义,不过程序窗口的标题一定要对,不然程序是不会被关闭的。
  WinText(2) =″Microsoft 网上红心大战
  WinText(3) = ″纸牌
  For i = 1 To 3
  Handle = FindWindow(vbNullString, WinText(i))
  PostMessage Handle, WM-CLOSE, 0, 0
  Next
  If Handle <> 0 Then MsgBox ″呵呵,你又在偷玩游戏
  End Sub
  最后的补充:如果想要做一个非常完整的系统监视程序,那么你可要花些时间了。
  第1步:首先,修改注册表,在计算机启动时就运行本程序,并且不能关闭。
  第2步:要调用 API 函数使本程序更隐蔽些。
  第3步:还需要随时修改检测的窗口标题,当有人运行游戏程序时,把他玩游戏开始时间和玩得什么游戏,保存到文件中去等等功能。
  本程序用 VB 5.0 编译通过,在中文 Windows 98 环境下运行良好

oracle-其他机器链接提示无监听程序的解决方法

oracle :其他机器访问本机提示无监听程序 的原因和解决方法   --kernelboy    一、   原 因:   在 oracle 安装路径中, D:\app\A...
  • wozengcong
  • wozengcong
  • 2013年08月24日 20:17
  • 4305

如何在一台电脑上安装多个Linux发行版

不得不承认,在一台电脑上安装多个Linux发行版,这是一个十分‘尴尬的’需求,但是出于某种原因,我就是有了这种需要。 经常安装Windows的朋友都知道,window多系统安装很简单,系统会自动检索...
  • u011507599
  • u011507599
  • 2016年09月14日 14:42
  • 2578

通过VC编程实现基于LAN的PC机与Tektronix示波器通信

Design by:3007(wyw&zy&liunus)              e-mail:lqx.come.on@163.com      Date:20140110 通过VC编程实现基于L...
  • liuu67xin
  • liuu67xin
  • 2014年01月14日 09:58
  • 2392

精彩编程与编程技巧-趣味撞球--vb6应用程序一例...

  • 2009年10月10日 23:03
  • 2KB
  • 下载

精彩编程与编程技巧-趣味撞球——VB应用程序一例...

  • 2009年10月10日 19:22
  • 2KB
  • 下载

摄像头编程一例ezVidC60.ocx for VB5 / VB6

  • 2008年11月18日 10:32
  • 166KB
  • 下载

精彩编程与编程技巧-VB中播放三维动画编程一例...

  • 2009年10月08日 13:45
  • 2KB
  • 下载

利用VB.Net 通过Windows Sockets (Winsock)以及多线程编程进行桌面电脑与Pocket PC间的双向通信

利用VB.Net编程实现PC与掌上电脑PPC间的双向通信 [源文件下载]http://www.cnblogs.com/Risen/category/110585.html本文介绍如何利用VB.Net ...
  • netlinking
  • netlinking
  • 2011年01月11日 09:49
  • 1612

VB.NET实现Windows剪贴板监视器

Windows剪贴板剪贴板(ClipBoard)是内存中的一块区域,是Windows内置的一个非常有用的工具,通过小小的剪贴板,架起了一座彩桥,使得在各种应用程序之间,传递和共享信息成为可能。然而美中...
  • testcs_dn
  • testcs_dn
  • 2014年12月25日 14:43
  • 3841

[VB.net]网络状态监视器[2012.02.28]

程序可以监控网络连接状态,可以设定网络断开的话就自动关机或运行程序。 新浪博客:http://blog.sina.com.cn/s/blog_647ee5f70100wicy.html ...
  • wangjingkaibear
  • wangjingkaibear
  • 2012年02月28日 21:52
  • 880
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:给电脑装个监视器--VB编程一例
举报原因:
原因补充:

(最多只允许输入30个字)