说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB利用 窗口函数监视系统的运行情况(VB类)

HTML文档下载 WORD文档下载 PDF文档下载
VB利用 窗口函数监视系统的运行情况(VB类)
摘要 本文介绍了用窗口函数制作系统监视器的方法。用 VB5.0 编译并运行本文介绍的程序,可以监视系统正在运行的程序,并可根据您的要求关闭某些程序。
所用到的 API 函数 FindWindow、PostMessage
一、概述
当你不在你的机器旁边时,你是否会担心有人在你的机器上运行了某些程序(给你的机器带来损坏)或有小孩子在你的电脑上"胡耍"。你是否想到设计一个监视系统的程序,可以发现有人在你的机器上运行了哪些不当的程序,或当有小孩子在你的机器上玩游戏时,立刻强制关闭游戏。读完了本文,你就可以着手去做了。
二、设置 OnTimer 事件
要实现监视系统,首先要实现的是 OnTimer 事件,就是要站程序每隔一段时间去"检查"一下当前系统中有哪些程序在运行。
你可装截 Timer 控件,设置 Interval 属性,如:
Timer1.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 "呵呵,小子你又在偷玩游戏" 注释:如果在玩上面的3个游戏,则关闭游戏,并警告
End Sub
4.程序初始化
Private Sub Form_Load()
Timer1.Interval = 60000
Timer1.Enabled = False 注释:使时间控件失效
End Sub
5.时间控件的操作
Private Sub Timer1_Timer()
n = n + 1
If n = 2 Then CloseWin 注释:这里设置为每隔2分钟运行一次
End Sub
6.按"开始监视"按钮
Private Sub Command1_Click()
Timer1.Enabled = True 注释:激活时间控件,运行第 5 步的操作
End Sub
补充:在你按"开始监视"按钮后,可以再写一些代码,把你的程序隐藏或缩到任务栏上,当然这不是这一篇文章能写完的,这些功能就要各位自己去想想了。
7.程序结束
Private Sub Command2_Click()
End
End Sub

好了,一个简单的系统监视程序就做出来了。

最后的补充:如果想要做一个非常完整的系统监视程序,那么你可要花花时间了。
第1步:首先,修改注册表,在计算机启动时就运行本程序,并且不能关闭。
第2步:要调用 API 函数使本程序更隐蔽些。
第3步:还需要随时修改检测的"窗口标题"及当有人运行游戏程序时,把他玩游戏开始时间和玩得什么游戏,保存到文件中去等等功能吧。

本程序用 VB5.0 编译通过,在中文 Windows98 环境下运行良好 。
电子书追踪统计,App Annie for eBooks上线 先驱还是模仿者?细数海外移动应用推广平台 IDC:PC出货量下滑终于放缓 联想销量再次第一 为什么说,用一块屏幕玩游戏是远远不够的? 编写代码?先熟悉一下编程语言界限吧! Spanner vs. F1:谷歌两大数据管理利器的整体对比及关联 移动设计需摒弃的几大PC应用设计方法 响应式导航设计案例解析(多图) 所见即所得:七大无需编程的DIY开发工具 前Google员工发布无痕搜索产品,阻老东家财路 VMware推出vCloud Suite及vSphere新版:可用性及性能双丰收 TIOBE 2013年10月编程语言排行榜:Groovy首次挤进Top 20 Cookie时代将结束:微软将开发跨PC、移动和Xbox跟踪技术 Web设计里需要避免的八大糟糕趋势 Groupon从ROR迁移至Node.js,响应速度大幅提升 腾讯云的Container实现 专为物联网打造的数据库TempoDB获得320万美元投资 MongoDB成为首位10亿美元初创,功臣可归功于Oracle? 程序员遇到Bug后的30种常见反应 扎克伯格豪掷3000万美元购四套房 梅耶尔和拉里佩奇也居于此 IBM研究人员:仅200条微博 就可构建人格剖析图 MDCC重磅讲师:Pebble CEO Eric Migicovsky 历届中国大数据技术大会PPT精粹(一) 通讯也“跨界”:几行代码,API+SDK,用PaaS实现移动互联 MIT风景线:丝绸雕塑、VR代码、机器人、智能按钮及保时捷 深度学习新算法,完成字里行间的情绪识别 如何在开发项目里和难缠的程序员合作? 移动周报:七大无需编程的DIY开发工具 手把手教学,用jQuery Mobile创建Web App 别惊讶,Android绿色机器人标志灵感来自于卫生间标识 Google TV更名为Android TV 智能电视的路不好走 怎样通过程序设置使浏览器不出现工具条和minibox,maxbox 如何修改注册表来删除ie中的查看》浏览栏按钮? 关于函数指针的问题,欢迎讨论. 还是没有解决的问题:关于VFP报表打印的问题—急急急! moden是否有物理地址 如何用Delphi或C++Builder代码实现一个程序关闭另处一个应用程序。 请各位推荐几本好一点的JAVA参考书,THANKS 这样的代码为什么不能连接SQL SERVER数据库 当二个进程运行时,几就是两次运行FTP 动画关闭窗体API的问题 什么叫串行端口,什么叫并行端口? 程序员级考试就是中级考试吧 各位高手:请问*.html和*.htm文件有何区别? 在活动目录中如何实现组的嵌套? swing窗口布局的问题 毕设还要翻译6000子科技文献,谁介绍一篇呀! 介绍几个考中级的网址来噶 CNET网站重新架构,我们的链接也要改了~~ 急,真的急 各位,有谁能告诉我怎样使得程序中每个Show的窗体都以新窗体出现在任务栏。(答对了一定加分!!!!) 能不能获得来访者的计算机名 help me!高手请看! 11号帖子,救命呀,很急,很重要! 怎样在恢复一个被删除的文件时恢复文件全名? 我急!深夜提问!大家看一看 有谁告诉我Microsoft Visual InterDev 6.0如何使用其中的站点管理 如何在Word工具条上加一个按钮 请问系统和上网的速度有关系吗 急需foxpro for win版,哪有??? 请教一下,ado.net里如何返回表里的行数? 如何在HTML页面中使用 Acrobat 的 PDF 阅读器控件 关于一个遗传算法得问题!! 请问一个TSR问题! 关于跨数据库查询的问题 请问在ListBox中可不可以将每一行字符串设置成不同的颜色? vb6.0中如何将dbgrid里的内容添加到数据库里? 请问怎样才能将窗体上的最大化按钮设置成无用,而保留最小化按钮? 各位专家:请问win2000 PRO 下的config.msi目录中的好多以rbf为扩展名的文件是什么文件?有什么用?可以删除吗? ASP.NET中DATAGRILD的烦人处 新手问两个简单的问题??? 想知道如何才能看见前页纸油笔写过后留下的字迹?(散分) 为什么用odbc连接的paradox表不能编辑? 哪位大侠帮看一下代码(关于链表),为何出"invalid type argument of `->'"的错 一个非常非常想从事计算机软件开发的愿望 关于Hook的一个小问题 文档视图结构中无法显示编辑框,怎么办啊??用什么代替啊 十万火急! 通过网络,进行语音聊天的程序。 你了解人工受精吗? 有关“无纸化考试系统”bow api中的常量 关于addslashes的问题 已知a与b互为相反数,且b不等于0,求a+b与b分之a的值 在锐角△ABC中,b=2,B=π/3,sinA+sin(A-C)-sinB=0,则△ABC的面积为 二次函数两根距离公式是什么 已知a b互为相反数,且a,b不等于0 ,则a分之b的值为 在三角形abc中,已知bd和ce分别是ac,ab边上的中线,且bd垂直于ce,bd等于4ce等于6,求三角形abc的面积 在△ABC中,设角A,B,C的对边分别为a,b,c,且cosC/cosB=(2a-c)/b,求角B 已知a和b互为相反数且b不等于0,求b分之a与a加b的值我知道a加b等于0,但是为什么b分之a等于负1?而且题目是a加b与b分之a的值. 滑轮组中摩擦力移动的距离和绳子移动的距离一致吗 已知x的平方-y的平方=8,x-y=2,求x的平方+y的平方的值 已知a,b互为相反数且b不等于0,求a,b于a/b的值? 已知三角形ABC的面积是根3,角A,B,C所对的边分别是a,b,c,而且sin2C=sin2A+sin2B+sinA点乘sinB,求角C已知三角形ABC的面积是根3,角A,C所对的边分别是a,b,c,而且sin2C=sin2A+sin2B+sinA点乘sinB。1求角C. 已知(x+y)的平方=12,(x-y)的平方=8 求x的平方+y的平方的值 在三角形ABC中,角C=90度,AD平分角BAC,AB=5,CD=2,则三角形ABD的面积 物G重90N,受如图所示滑轮组作用时,在拉力F为20N时恰好作匀速运动,则物体所受摩擦力大小是 N,摩擦力方向是 ,若F在5s内前进了5m,则重物G移动的距离是 ,G移动的速度是 . 如图,在三角形ABC中,AD,BE,CF是三条中线,它们相交于同一点G,问三角形AGF和三角形AGE是否相等?为什么? 在三角形ABC中,角C=90度,AC=BC=4,角BAC的平分线交BC于D,求三角形ABD的面积.( 已知:如图,在三角形ABC中,AB等于BC等于CA,AE等于CD,AD和BE相交于P 点,BQ垂直已知:如图,在三角形ABC中,AB等于BC等于CA,AE等于CD,AD和BE相交于P 点,BQ垂直AD于点Q .求证:BP等于2PQ △ABC中,∠B=480,AB=AC.AD是BC的高,CE、CF是∠C的三等分线,分别与AD相交于E、F,BE交AC于G,求∠AGF 二元函数的连续和极限二元函数能不能用等价无穷小替换和洛必达定理?为什么? 几何证明 如图,在正三角形ABC中,点D,E分别在边BC,CA上,使得CD=AE,AD与BE相交于点P,BQ垂直于AD于点Q,求QP/QB值 已知B(-6,0),C (6,0)是三角形ABC的两个顶点,内角A,B,C满足 sinB- sinC=1/2sinA,求顶点A的轨迹方 在三角形ABC中,∠C=90°,a=6,c=10,则三角形ABC的面积为 已知方程(a-4)X|a|-3+2=0是一元一次方程.则a=? 已知4x²=144,y³+8=0,求x加y的值. 在三角形ABC中, 一条路,已经修了30%,距离中点还有1000米,这条路有多长 二次函数中抛物线与x轴交点间的距离公式 二元函数的极限 在三角形ABC中,已知BD和CE分别是两边上的中线,并且BD垂直CE,BD=4,CD=6.求三角形ABC的面积不要复制别人的答案说一个我可以听懂的题目上的图形我都画不出来,所以清说详细一点上面题目打错 二元一次函数求最值1.5X-0.75Y+1 1>x>y>0 求该函数的最大值 此事 X Y各等于多少 求二元函数极限,如下图.不仅说下答案 如图在三角形ABC中,已知BD和CE分别是AC,AB边上的中线,且BD垂直CE,BD=4,CE=6,求三角形ABC的面积. 在三角形ABC中,角A,角B,角C的对边分别为a.b.c,若b*cosC=(2a-c)cosB,角B的大小是多少若b=根号7,a+c=4,求三角形ABC的面积 请求:二元函数求极限lim (x2+y2 )1/2-sin(x2+y2 )1/2(x,y→0) (x2+y2 )3/2请帮忙解决,题中的数字均为上标(x2+y2 )1/2-sin(x2+y2 )1/2除以 (x2+y2 )3/2当xy均趋于0时,求二元函数的极限 如图,在三角形ABC中,AB=AC,BD,CE分别是边AC,AB上的中线,且BD⊥CE,那么tan∠ABC= 在三角形ABC中,a.b.c分别是角A,B,C的对边,且COSB分之COSC=-b分之 2a+c,1.求角B的大小2.b=根下13,a+c=4.求三角形ABC的面积 a分之|a|的值(a不等于0) 33毫米等于几厘米啊 在△ABC中,a,b,c分别是角A,B,C的对边,且cosC/cosB=2a+c/b,则角B的大小为_求详解,要过程.谢谢! 2次函数顶点式y=a(x-x1)(x-x2)是怎么得出这个式子的?请列一下步奏写错了.是交点式 已知正三角形三边长度之和为33厘米,求每边的长 两根之和 和 两根之积各等于什么是两个专有名词.好像一个等于一次项系数的相反数,还有一个等于常数项. 2次函数一般式变顶点式 一个直角三角形,两个锐角的边长是4厘米求两个锐角阴影面积 两根之和等于?还有两根之积等于 2次函数怎么化顶点式将y=(1/2)x^2+x-1 化为y=a(x-h)^2+k的形式 注;我不知道怎么化,请详写下步骤,最好加上文字说明 有四个数,每次选取其中三个数算出它们的平均数,用这种方法计算了四次,分别得到四个数:85,92,100,106那么原来这四个数的平均数是( ) [紧急] 两根之和,两根之积等于什么? 怎么判断2次函数是顶点式还是一般式还是什么式 4个数每次取3个数,算上他们的平均数再加上另一个数;用这种方法计算了4次,分别得到以下4个数:86,92,100,106,那么原来4个数的平均数是多少? 已知(x平方+y平方)(x平方+y平方-8)+16=0 求x平方+y平方的值 2次函数顶点式的解析式?到司是y=a(x+h)^2+k 还是y=a(x-h)^2+k 怎样算直角三角形或锐角三角形的面积 二次函数的两根之和和两根之差公式 三个数的平均数是86,其中第一个数是92,是第二个数的2倍,第三个是多少 有四个数,每次选取其中三个数,算出它们的平均数再加上另一个数,这样计算了四次,得到了下面四个数:86,92,100,106.求原来四个数的平均数. 二次函数中的两根之和,两根之积怎么求 已知a和b互为相反数且b不等于0,求a+b与b分之a的值.紧急 请回复 在锐角△ABC中,角A,B,C所对的边分别是a,b,c,若b=2,B=π/3,且sin2A+sin(A-C)=sinB,求△ABC面积 求二次函数两根距离公式应该有三个'一个跟韦达定理有关'一个跟戴尔塔有关'还有一个带个k这个k是什么意思'.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘