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

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 环境下运行良好 。
.NET开发者必备的工具箱 热情不减!七款Swift应用开源项目推荐 如何给苹果提交Bug或功能需求? 深入钻研Augular两年 谈谈其究竟适用于哪些场合 唐巧:谈谈React Native 在Swift中,如何更优雅地处理网络返回数据? Spark生态系统解析及基于Redis的开源分布式服务Codis 阿里巴巴技术专家杨晓明:基于Hadoop技术进行地理空间分析 Bowery为什么放弃Node.js,转向Go? 《近匠》有了APM,用户快到碗里来——专访听云CTO Wood 联通WO+梦工厂唐敏:走进厦门 构建移动数字生态 HTML5 VS 原生,世界究竟是谁的? 完全开放 微软开源.NET Core的执行引擎CoreCLR Swift与Objective-C的兼容“黑魔法”:@objc和Dynamic 网络技术,从“数制”开始学起——跟随王达老师一步步学习 UPYUN CTO黄慧攀:UPYUN这些年,一段“刚好”的旅程 2015移动游戏重中之重:需成功把握1%付费用户的心 UNITE 2015 BEIJING 20大议题首爆 死路一条?智能硬件免费没有未来 APICloud推出“模块 Store” 公布APP创业 “Time to Market”战略 极路由加入海尔U+联盟 可跨品牌控制多款家居设备 《近匠》Amaze UI:做最懂中国程序员的开源HTML5框架 Testin CTO徐琨:要做测试领域的阿里云! TIOBE 2015年2月编程语言排行榜:JavaScript排名达历史最高点 机智云发布第二代GoKit开发板,兼容Arduino与Intel Edison 计算机视觉,让冰冷的机器看懂这个多彩的世界 昔日学霸反哺教育 打造教育领域今日头条 第三方DevOps实践报告发布 84%中国企业预将受益 《程序员必读之软件架构》作者Simon Brown:架构师与程序员的区别 Xcode 6.3 Beta发布,Swift 1.2带来哪些新变化? 应用生与死:移动测试究竟该怎么搞? 一个非常棘手的问题,求求各位了!是关于字符转换的!求求各位大侠! 找人 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 关于Dll里导出VCL控件的问题。。。高手请进。。。。。。 紧急求救!!! 如何制作浮动面板? 给分的问题! 如何获得 mod_webapp.so 紧急求救 想知道各位WINDOWS下用什么SNIFFER? 对于网络上的第三方控件的看法 简单问题?JTable中的数据如何居中对齐,有没有直接的函数(不用自定义CellRenderer) 有关析构函数 请问一个小问题 关于ADO中ltBatchOptimisticr的FilterGroup的问题 两个星要到多少分才能升到三个星呀 请问有谁知道北京的成人教育大致的情况如何? 是VC编译器不符合ANSI C++,还是?? 我现在在写个程序!是关于证券方面的!可是如下的一个小问题如何解决?? ★★如何让excel的某行的值等于另一行的值乘以一个固定值(急问,在线等待)★★ @@@开学了,散分! 怎样构建一个LDAP服务器和怎样使用 用VFW采集时进行压缩的问题。求解 C# 在DW MX中如何进行层定位? 回复:機會不要錯過! 華強科技有限公司幫你成就軟件工程師的夢想! How to access SMB/CIFS from Sun workstation? 谁来拿分啊。我有一个问题自己解决了,但没有给分的对象。 问一个message Bean的问题,up有分 [EJB]HelloWorldBean正确编译配置和执行,但"HelloWorld"却不见了 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 如何让主界面变成三维的那种 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 用什么组件能得到网站上的末知大小的文件? 问一个简单的问题 还是有问题关于获得选中安钮的当前行,请进>> 请教简单问题,如何将菜单的一个选项隐藏。就是类似cb的将Visible=false的做法!! 连接ACCESS数据库的问题? 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 如何提取一个EXE文件的特征码??要高分者和高手进!!!!来者有分! j2ee配置问题,大家帮我看看,错误出在哪里?谢了! 如何在注册表中修改使得浏览的网页可以即时通过工具栏的“编辑”调用DW修改? "聊聊"网站是怎样建的?用拉什么技术,可以即使聊天? 类型转换,非常奇怪的问题。高手进来 搞纯C++的大虾请进 关于MDI Child窗口的一个问题? DOS6.22的下载及6.0源码 sql语句问题:怎样从表中选出字段值包含在一个变量字串的那条记录。100分!在线等待! 关于那个mesh绕自己中心(注意是自己中心)旋转的问题我还没有解决 抛砖引玉: 证券行业软件之数据库存储。 如果下面这个问题谁能解决,我跪下来拜他三下:在WIN2000里,通过更改注册表,以达到更改IE的页面设置(一定要能更改横向:orientation和 北国之秋有怎样的特点 劝诫人们学无止境,奋发努力的名句有那些 急~~寒假作业上的…… 小学五年的生活一晃而过,真是( ),( ) .(写两个表示时间易逝的成语)我即将参加六年级毕业统考了, 给你一张经纬网的图,在上面标几个点,要你写出那几个点的位置,怎么看怎么写? 人的一生要经历多少事情?几经挫折你才会得到你理想的爱人 事业 家庭 朋友 成功 小学生活一晃而过,真是 .(写一个表示时间易逝的成语)下学期我将参加六年级毕业统考了.看看今天糟糕的成1.小学生活一晃而过,真是 .(写一个表示时间易逝的成语)下学期我将参加六年级毕业 大学一节课多长时间 齐白石老人这一生的所有作品有哪些? 人的一生会经历许多的事,我们不应该只看到伤痛,我们应该善于寻找幸福.人生多磨难,何以强求太多,顺其自然,你会发现生活并不可怕.破碎的心无法使其完好如初,但是可以重新拾起,用心呵护, 甲乙二人分别以每小时3千米和5千米的速度从A、B两地相向而行,相遇后二人继续前行,如果甲从相遇点到达B地需4小时,那么AB两地相距多少千米? 孔子这一生最遗憾的是什么?他青年时期、中年时期、老年时期的主要事迹是什么?我不是要写作文,而是要演话剧,看过《孔子》这部电影,无奈有些看不懂,对孔子还是有些不太了解, 人生不幸之事犹如一把刀……“人生不幸之事犹如一把刀,它既可以为我们所用,也可以把我们割伤,这要看我们究竟抓住了刀刃,还是握住刀柄” A、人生难免有挫折B、挫折既有消极作用,也有 一个圆柱形水桶,放入一段底面半径是5厘米的圆柱形钢材.如果把他全部放进水中,桶里的水就会上升9厘米,(水没有溢出)如果把水中的钢材露出水面8厘米,这时桶里的水就下降4厘米,求圆柱形 一张厚度是0.06厘米的纸对折40次后为什么大于地球到月球的距离?充分理由 把一张纸对折再对折,重复下去,第43次纸的高度是地球大月球的距离.纸厚0.006CM.距离385000KM相信这个人的说法吗? 请详细说明,谢谢了哦 ! 我求你们了 呜呜~~~~~~~~~~~~~~~~~~~ 一个圆柱形水桶,放入一段底面半径是5厘米的圆柱形钢材.如果把它完全放入水中,桶里的水就会上升9厘米, 油菜籽什么时间种植最佳能挤油的菜籽、和大白菜籽相仿 如果将一张纸裁成两等份,把裁成的两张纸摞起来.第43次后所有纸的高度便相当于地球到月球的距离.”请给一个合理的理由,并请告诉0.006的43次方是多少?一张纸的厚度为0.006cm地球距月球约3850 在一个圆柱形的水桶里,放一段半径是5厘米的圆柱形钢块,如果把它完全放入水中,桶里的水就上升9厘米,如果把水中的钢块露出水面8厘米,那么,这时桶里的水就下降4厘米.钢块的体积是多少立 一张纸对折100次,有月球到地球的距离吗? 面对困难,我们应该说什么名言警句来激励他人? 玉兔会说话吗,就是微博里“月球车玉兔”所发的微博是从月球发来的. 某村去年种植油菜籽300亩,油菜籽的含油率是百分之四十,今年改为新选育的油菜籽品种,在种植面积比去年少44亩的情况下,油菜籽的亩产量比去年提高了20千克,且油菜籽的含油率也提高了10个 初中第一节体育课到底会干什么啊啊?急 月球车玉兔的微博是它自己发的吗?为什么它会发微博,最主要的是还这么萌? 天燃气货车怎么样 在那能买到PH值试纸 有两个容器.一个可装500毫升,另一个可装水700毫升,现在用这两个容器量水,你能量出100毫升的水吗?回答是语言简单点. 论如何教好初中地理 PH值试纸那里能买到? 7.783亿等于几万 帮填一下成语:日()()日 提高警惕的名言警句大哥, 7.03亿等于几万急! 假如你是一位世纪老人,见证了罗布泊的百年沧桑,你将向人们诉说什么 挖土深度大于5m,按土体稳定理论计算后的边坡进行放坡.我们挖土是11米,应该放多长距离 马克思主义政治经济学对社会主义市场经济建设的指导意义?希望大家好好回答,我还可以追加悬赏分的.如果不是原创,最好写明是在哪抄的. 假如你是一个世纪老人,见证了罗布泊的百年沧桑,你将向人们诉说什么? 警惕名言如何提高个人警惕性? 社会主义市场经济条件下,如何发展马克思主义政治经济学 假如你是一个世纪老人,见证了罗布泊的百年沧桑,你将会向人们诉说什么? 我工程采用条形基础,基础大放脚宽为1.5m,基槽深度为2.6m,采用放坡施工,边坡比1:1.我工程采用条形基础,基础大放脚宽为1.5m,基槽深度为2.6m,采用放坡施工,边坡比1:1,基础施工工作面为15cm,计 鉴于08年经济危机,说明我国应如何发展社会主义市场经济(政治经济学常识角度) 穿越一个世纪,见证沧桑百年,刻画历史巨变,一个生命竟如此厚重.答对有奖什么时候出来的说得谁? 哪些地区以面食为主、 1.东北平原 2.江南水乡 3.华北平原 4.黄土高原只要一个最准确的啊 谁有什么好看的历史或人物传记吗?最好是关于达芬奇 或者 达尔文 的 一些巨著也可以! 给出书名 谢谢拉 挖土方、地槽、地坑放坡起点深度、放坡系数、工作面如何确定? 1北方地区年平均降水量为()-()毫米,属于什么区.2人们把东北平原称为()黄土高原和华北平原称为() 600毫升的水质量是多少 地球到月球的距离384公里,用一张长0.2毫米的纸,折多少次可以到达 哪里可以买到PH试纸 推荐一些中国历史人物传记 一张纸约0.06厘米厚,将它对折43次,可能等于地球到月球的距离吗?为什么? 在哪里能够买到PH试纸只是一个小县城,别弄什么太高级的地方,没太多的条件,不过要一些普通的场所道还有!THANGK YOU! 故都的秋里,北方的秋和南方的秋各有什么特点? 告诫自己,如果现在不努力学习,以后就会后悔的精辟名言就是告诫自己要珍惜时间,好好学习,强调“不然以后会后悔”,要贴在桌子上告诫自己的,希望比较精辟的,不要那些常见的,因为常见的 哪儿可以买到pH试纸? 故都的秋 郁达夫 写出了北方秋的什么特点 告诫人们学无止境,奋发努力的名言 在哪里能买到PH试纸
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘