吴泽勋
【机房批操作 V2.1】使用说明
一、软件运行
    该程序包含三个可执行文件wzxSetNetInfoFromMac.exe,wzxBatClient.exe,wzxBatManager.exe;三个配置文件config.wzxcfg,LnkButton.wzxcfg,NetInfoFromMac.wzxcfg;四个批处理文件wzxStartManager.bat,wzxSetIPFail.bat,wzxTemp.bat,注册控件.bat;一个VB脚本文件wzxTemp.vbs;四个备用控件文件mswinsck.ocx,richtx32.ocx,msscript.ocx,Comdlg32.ocx(备用控件文件为Windows系统文件,非作者编写)。
1、wzxSetNetInfoFromMac.exe:安装在学生机,根据MAC地址设置电脑的网络信息,GHOST之前,把他的快捷方式放在开始菜单-程序-启动项中。如果执行时读取本机的MAC地址失败,则运行wzxSetIPFail.bat,否则根据config.wzxcfg中定义的MacFileName(默认为NetInfoFromMac.wzxcfg)中的IP和PCNAME中的MAC地址对应修改IP,修改成功则重新启动,如果名为MacFileName值的文件中的IP和计算机名和本机一致则把wzxBatClient.exe加入注册表的启动项中,并执行wzxStartManager.bat。为了避免IP冲突导致Mac读取失败,GHOST前最好把IP地址改为自动获取。
2、wzxBatClient.exe:安装在学生机,侦听wzxBatManager.exe的命令。如果你不需要改网络信息的程序,可以直接放在启动栏即可。
3、wzxBatManager.exe:安装在教师管理机,可以依次发送指令给有运行wzxBatClient.exe的学生机执行。
4、wzxSetIPFail.bat:安装在学生机,默认30秒后为重新启动计算机。可以自行修改。
5、wzxStartManager.bat:安装在学生机,默认为启动wzxBatClient.exe。可以自行修改。
6、wzxTemp.bat、wzxTemp.vbs:安装在学生机,用来存放运行时临时生成Bat或Vbs文件。如果不存在,则运行时自动生成。
7、注册控件.bat:如果运行时,出现调取控件失败,请运行注册控件.bat。
8、mswinsck.ocx,richtx32.ocx,msscript.ocx,Comdlg32.ocx:备用控件,如果出现运行错误请把该控件复制到windows/system32中或直接运行注册控件.bat。
9、LnkButtondd.wzxcfg:放置wzxBatManager.exe中的快捷操作(常用的命令或命令集)。
10、NetInfoFromMac.wzxcfg:放置wzxBatManager.exe中收集Mac指令存放的文件名,可由config.wzxcfg中MacFileName来定义。
11、config.wzxcfg:用来存放配置信息,MainListenPort为wzxBatClient.exe的侦听端口,wzxBatManager.exe的连接端口。ByteListenPort为传送文件的端口。IPSegment为wzxBatManager.exe的初始IP范围。IPStart为wzxBatManager.exe的初始的IP开始数字。IPEnd为wzxBatManager.exe的初始的IP结束数字。MacFileName为wzxBatManager.exe收集Mac地址存放的文件,也是wzxSetNetInfoFromMac.exe中修改的网络信息依据文件。RetryTimeMinuteBegin为wzxSetNetInfoFromMac.exe读取Mac地址失败后等待重试最小时间。RetryTimeMinuteEnd为wzxSetNetInfoFromMac.exe读取Mac地址失败后等待重试最大时间,实际时间是在最小最大之间随机取。

二、系统使用
1、信息格式定义
本软件所读取传递的信息采用简化版XML格式。信息的表示形式为:<名称>值</名称>。名称开始必须放在尖括号(<>)内,结束也必须放在尖括号(<>)内,并在名称前加终止斜杠符(/)。名称必须成对出现,任何没有在<名称>和</名称>之间的值都会被忽略,所以备注信息可以直接写在外面。名称和值支持中文,若有英文,则区分大小写。所含的名称在任何层次中可以重名,并支持嵌套,但嵌套不能交叉。
2、命令发送端界面说明

命令发送端是用来发送命令集的,一般安装在机房的教师管理机上。在命令发送端可以一次对已安装学生机的一次进行发送命令集,学生机收到命令集后,执行命令集并把执行结果反馈给命令发送端。
使用命令发送端发送命令集,首先要设置IP范围,比如要执行命令集的学生机的IP地址范围为192.168.1.100至192.168.0.200,前面一个框填写的是IP地址范围的前面相同的部分-“192.168.1.”,后面两个框填的是执行端IP范围的不同部分的起止数字-“100-200”。其次在命令集输入框要学生机执行的命令或命令集,右边的快捷操作框里面有导入常用的命令集,只要点击相关按钮相关的命令集就会自动输入到命令集输入框。最后点击发送发送命令按钮,命令发送端根据设置的IP地址自动依次发送命令或命令集给学生机。
因为发送文件的命令编写比较复杂,有涉及到文件路径和文件的大小,所以发送文件加了一个选择文件并提取文件大小的快捷按钮,点击发送文件按钮出现如下图的文件选择窗口,只要选中要发送的文件即可生成发送文件的命令。

3、命令执行端界面说明

命令执行端界面开始运行时是隐藏的,任务栏的通知区域图标中有显示图标。鼠标右键单击图标会弹出菜单,可以退出或显示如下图所示的主窗体。该窗体显示本机的计算机名和IP地址,在日志框内显示接收命令情况及执行的结果。
4、命令说明
(1)Bat为DOS批处理命令,内置值为命令的内容,例如:
<Bat>explorer.exe open=http:// wuzexun.com</Bat>为打开wuzexun.com网站的主页。
<Bat>shutdown /f /r /t 3 /d P:1:2 /c "机房批操作控制端要求重启。"</Bat>为计算机重启。
<Bat>shutdown /f /t 3 /d P:1:2 /c "机房批操作控制端要求关机。"</Bat>为计算机关机。
<Bat>start "" "C:\ ExamMachine.exe"</Bat>为执行C盘下的ExamMachine程序。
(2) Vbs为执行Vb脚本代码,内置值为代码内容,例如:
<Vbs>vbs:Set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 1000
WshShell.SendKeys "%{F4}"</Vbs>
以上命令为发送ALT+F4
(3) CloseWindow为关闭窗口,内置值为窗口标题,例如:

<CloseWindow>评分环境检测系统 - Microsoft Internet Explorer</CloseWindow>为关闭评分环境检测系统的IE窗口
(4) SendKey为发送按键,内置值为发送的按键值。
(5) KeyBd为模拟键盘,内置值为键盘数字,多个值使用逗号隔开,例如:
(6) Exe为执行可执行文件,参数PathName为执行文件的路径,WindowStyle为执行窗口的状况,(vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。 VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。), 例如:
(7) WriteText为写文本文件,参数FilePath为文件的路径,FileText为文件的内容。
(8) SetWPaper为设置墙纸,参数Display为平铺方式(0为居中,2为展开,其他为并排),FilePathName为文件存放路径,例如:
(9) Run为运行某个文件,参数Operation为操作名称,File为文件路径,Parameters为参数,Directory为默认路径,ShowCmd为打开文件的方式。
(10) ChangeByte为写二进制文件,参数FilePath为文件路径,ValueAt为修改内容,注意内容中为<位置>值</位置>。
(11) SendMessage为发送系统消息,参数MSG为,WParam,LParam,具体用法请参照SendMessage函数,例如:
<SendMessage><MSG>793</MSG><WParam>2100912</WParam><LParam>65544</LParam></SendMessage>为调为静音。
(12) ShowMessage为显示一个提示信息,内置值为显示内容。
(13) CloseMessage为关闭提示信息。
(14) SetDesktopPix为设置分辨率,参数BitsPerpel为位数,一般为32或16位,PelsWidth为屏宽,PelsHeight为屏高,例如:
<SetDesktopPix><BitsPerpel>16</BitsPerpel><PelsWidth>1024</PelsWidth><PelsHeight>768</PelsHeight></SetDesktopPix>
(15) WriteReg为写注册表,参数MainKey为主键,SubKey为子键,ValueName为键名,ValueType为键值的类型(REG_NONE = 0,REG_SZ = 1, REG_EXPAND_SZ = 2,REG_BINARY = 3,REG_DWORD = 4,REG_DWORD_BIG_ENDIAN = 5,REG_MULTI_SZ = 7),ValueValue为键值,例如:
<WriteReg><MainKey>HKEY_LOCAL_MACHINE</MainKey><SubKey>Software\Microsoft\Windows\CurrentVersion\Run\</SubKey><ValueName>wzxBatServerV2</ValueName><ValueType>REG_SZ</ValueType><ValueValue>E:\soft\机房批操作V2\wzxBatServer.exe</ValueValue></WriteReg>
(16) MouseMove鼠标移动,参数X,Y为坐标,以像素为单位:
<MouseMove><X>100</X><Y>100</Y></MouseMove>
(17) MouseClick为鼠标单击,没有参数:
<MouseClick></MouseClick>
(18) MouseClickRight为鼠标右键单击,没有参数:
<MouseClickRight></MouseClickRight>
(19) MouseDoubleClick为鼠标双击。没有参数:
<MouseDoubleClick></MouseDoubleClick>
(20) Byte为发送文件,参数LocalFilePath为本地文件的路径,Destination为接收放置文件的路径,FileSizeCount为文件大小,单位为字节,FileName为文件名,例如:
<Byte><LocalFilePath>E:\1.rar</LocalFilePath><Destination>E:\1.rar</Destination><FileSizeCount>6147775</FileSizeCount><FileName>1.rar</FileName></Byte>
(21) Sleep为暂停执行,内置值为暂停时间,单位为毫秒,例如:
<Sleep>5000</Sleep>
(22) GetNetInfo为收集Mac地址对应的网络信息,如IP等,收集到的信息保存在NetInfoFromMac.wzxcfg文件中(可以自定义),没有参数,例如:
<GetNetInfo></GetNetInfo>