APP下载

利用VB制作系统服务来维护教学软件的运行

2018-02-16

信息记录材料 2018年8期
关键词:教学软件红蜘蛛控件

赵 睿

(常德技师学院 湖南 常德 415000)

1 问题起因

学校新建了两个机房,由于使用了64位的win7系统,在多媒体教学软件的选用中,只有红蜘蛛教学软件能满足要求,所以机房中安装了红蜘蛛系统来进行教学演示。

最近上课,发现许多调皮的学生都悄悄把红蜘蛛客户端退出了,他们是怎么做到的呢?经过观察,我发现学生们采取结束红蜘蛛进程,并对程序进行删除或改名,也就是说,安装文件夹下没有了红蜘蛛程序,这样,学生就成功的脱离了教师机的控制。

2 解决思路

怎么办呢?问题原因是安装文件夹下的红蜘蛛文件不存在了,由此我想,如果我来编写一个程序,用来检测该文件是否存在,如果不存在了,自动将备份的红蜘蛛程序复制过去,这样不就可以起到避免教学软件的退出了么?

3 程序设计

说做就做,我启动VB,新建一个标准exe文件,并将form控件的visible属性设置为disable,因为我不希望这个程序运行后被学生发现,该属性设置后窗体不会被显示出来。然后我又在窗体上建立了一个timer控件,将interval属性设置为5000,意思为过5秒检测一次。双击timer控件,输入如下代码:

On Error Resume Next

If Dir("c:3000softRed spiderRedagent.exe") ="" Then

FileCopy "c:windowsak.dat", "c:3000softRed spiderRedagent.exe"

End If

以上代码的意思是检测"c:3000softRed spiderRedagent.exe"文件是否存在,如果不存在了,则复制"c:windowsak.dat"文件过去(该文件是我做的Redagent的备份文件),并改名为Redagent.exe。这段代码每隔5秒钟执行一次,确保红蜘蛛教学软件的安全。

简单的代码写好后,我生成exe文件,然后复制到机房的每台电脑上,并通过修改注册表,将其设置为自启动文件,果然,在后面的教学中,起到了立竿见影的效果,许多学生发现无法删除掉红蜘蛛了。

4 再起波澜

可是,好景不长,过了几个星期,机房又出现了红蜘蛛被退出的现象,经过调查,发现学生已经找到了我做的程序,然后——也把它结束进程删掉了!怎么办?我想到了Windows的服务系统。

大家都知道,Windows有许多许多的服务,服务其实就是一个程序,服务也能随着计算机的启动而执行,而且在执行后并不能在进程中发现。我如果把自己的这个程序做成一个服务,那岂不是就能避免被学生发现了?于是,我开始对我的源程序进行改造。

5 程序改编

Vb下做服务比较麻烦,需要一个控件——ntsvc.ocx,我首先下载这个控件,把它复制到c:windows下,并通过regsvr32 ntsvc.ocx进行注册,然后打开我的源程序,选择“工程”——“部件”,引用这个控件,引用成功后,在工具箱中出现了一个Ntservice的控件按钮。

我把这个控件添加到form1中,然后在右侧的属性栏中设置如下参数:

Displayname:sys service (显示名,我起名的原则是不易被发现,其实用任意的名字都可以的)

Servicename:service(服务名:起名的理由同上)Startmode:2(启动模式:自动启动)

其余的参数基本可以不变,然后我再在程序的Form_load事件中添加如下代码:

On Error GoTo Err_Load

Dim strDisplayName As String

strDisplayName = NTService1.DisplayName

If Command = "-install" Then

NTService1.Interactive = True

If NTService1.Install Then

Call NTService1.SaveSetting("Parameters","TimerInterval", "1000")

MsgBox strDisplayName & "安装成功 "

Else

MsgBox strDisplayName & " 安装失败"

End If

End

Else

If Command = "-uninstall" Then

If NTService1.Uninstall Then

MsgBox strDisplayName & "卸载成功"

Else

MsgBox strDisplayName & " 卸载失败"

End If

End

Else

End If

End If

Timer1.Interval = CInt(NTService1.GetSetting("Parameters", "TimerInterval","2000"))

N T S e r v i c e1.C o n t r o l s A c c e p t e d=svcCtrlPauseContinue

NTService1.StartService

6 生成服务

首先,生成一个可执行程序,我将其起名为system.exe,然后复制到学生电脑的c:windowssystem32下面。然后进入CMD,输入如下命令:system–install然后回车,出现安装成功的对话框提示。这个时候,打开控制面板的服务,发现我的这个服务已经被加入进去,而且是设置为自启动的。

那么,究竟可以了没有呢?我重启学生电脑,启动完毕后,再次打开服务,发现这个服务已经启动了,我尝试着删除了红蜘蛛软件,果然,不到5秒钟,红蜘蛛就被复制过来了,终于成功了!

7 结语

新做的程序已经在机房试用了一段时间了,最近均没有发现红蜘蛛被退出的事情了,此番和学生斗智斗勇的过程让我也学到了不少知识,不过,除了在技术上约束学生以外,我们教师更多的还是要在教学上下功夫,以提高学生的学习积极性。

[1]罗朝盛.《Visual Basic 程序设计教程》人民邮电出版社,2005.

[2]管丽娜,白海波.《实用Visual Basic6 教程》[M].北京:清华大学出版社,2001.

[3]段兴主编.《visual Basic数据库实用程序设计100例》人民邮电出版社.

猜你喜欢

教学软件红蜘蛛控件
传承·创新·引领:虚拟教学软件在高中生物学教学中的应用与推广
栗红蜘蛛的发生危害及其防治
玉米红蜘蛛防治建议
基于HTML5的凸轮廓线图解法App教学软件研究
关于.net控件数组的探讨
基于AR的国家开放大学计算机专业体验式教学软件的设计开发
240g/L螺螨酯悬浮剂防治柑桔红蜘蛛试验效果简报
杜鹃红蜘蛛的防治
VR技术在三维角色动画教学软件中的应用研究
就这样玩会VBA中常见的自定义控件