📄 考试教师主窗口.frm
字号:
TabIndex = 32
Top = 120
Width = 2055
End
Begin VB.Label Label1
Caption = "考生信息 共有:"
Height = 255
Left = 360
TabIndex = 29
Top = 120
Width = 1575
End
Begin VB.Menu indexmnu
Caption = "popmnu"
Visible = 0 'False
Begin VB.Menu startser
Caption = "开始考试"
End
Begin VB.Menu stopser
Caption = "停止考试"
End
Begin VB.Menu lineA
Caption = "-"
End
Begin VB.Menu addfen
Caption = "为考生加时"
End
Begin VB.Menu twostud
Caption = "二考考生"
End
Begin VB.Menu runfen
Caption = "考生打分"
End
Begin VB.Menu lookfen
Caption = "查看分数"
End
Begin VB.Menu lineB
Caption = "-"
End
Begin VB.Menu helpme
Caption = "帮助"
End
Begin VB.Menu quitprg
Caption = "退出系统"
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub addfen_Click()
Call Command5_Click
End Sub
Private Sub Command10_Click()
Load Form4
Print #3, form3.Text1 & "开启打分系统!" & Date & Time & Chr(16) & Chr(17)
Form4.Visible = True
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub
Private Sub Command11_Click()
Load Form5
Form5.Visible = True
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub
Private Sub Command2_Click()
Sockser(0).Bind
Sockser(0).Listen
Command2.Enabled = False
Command3.Enabled = True
Form1.List1.AddItem ("服务器:" & "开始服务日期为:" & Date)
Print #3, "服务器:" & "开始服务日期为:" & Date & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:开始服务时间为:" & Time())
Print #3, "服务器:开始服务时间为:" & Time() & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:以开始服务!")
Print #3, "服务器:以开始服务!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Timer2.Enabled = True
Command7.Enabled = True
Command8.Enabled = True
Command9.Enabled = True
Text2.Enabled = True
Picture1.Picture = LoadPicture(App.Path & "\ico\serok.ICO")
' Update the tray icon.
With TheData
.hIcon = Picture1.Picture
.uFlags = NIF_ICON
End With
Shell_NotifyIcon NIM_MODIFY, TheData
Form1.stopser.Enabled = True
Form1.startser.Enabled = False
End Sub
Private Sub Command3_Click()
Dim i As Integer
For i = 0 To 30
sockip(i, 1) = 1
Sockser(i).Close
Next
Command3.Enabled = False
Command2.Enabled = True
Timer2.Enabled = False
Command7.Enabled = False
Command8.Enabled = False
Command9.Enabled = False
Form1.List1.AddItem ("服务器:以停止服务!")
Print #3, "服务器:以停止服务!" & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:停止服务日期为:" & Date)
Print #3, "服务器:停止服务日期为:" & Date & Chr(16) & Chr(17)
Form1.List1.AddItem ("服务器:停止服务时间为:" & Time())
Print #3, "服务器:停止服务时间为:" & Time() & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Picture1.Picture = LoadPicture(App.Path & "\ico\serlong.ICO")
' Update the tray icon.
With TheData
.hIcon = Picture1.Picture
.uFlags = NIF_ICON
End With
Shell_NotifyIcon NIM_MODIFY, TheData
Form1.startser.Enabled = True
Form1.stopser.Enabled = False
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Command5_Click()
Load Form2
Form2.Caption = "二考加时"
Print #3, form3.Text1 & "开启二考加时!在" & Date & Time & Chr(16) & Chr(17)
Form2.Visible = True
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub
Private Sub Command6_Click()
Load Form2
Form2.Caption = "二考考生加入"
Print #3, form3.Text1 & "开启二考考生加入!" & Date & Time & Chr(16) & Chr(17)
Form2.Visible = True
Form2.Text5.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
Command10.Enabled = False
Command11.Enabled = False
Form1.addfen.Enabled = False
Form1.runfen.Enabled = False
Form1.lookfen.Enabled = False
Form1.twostud.Enabled = False
End Sub
Private Sub Command7_Click()
Dim i As Integer
For i = 1 To 30
If sockip(i, 1) = 5 Then
Sockser(i).SendData "get_time"
End If
Next
End Sub
Private Sub Command8_Click()
If Form1.Combo1.ListIndex = 0 Then
For bytemp = 1 To 30
If sockip(bytemp, 1) = 5 Then
Form1.Sockser(bytemp).SendData "ser_intf" & Text2.Text
Print #3, form3.Text1.Text & "对所有在线考生发信息" & Text2.Text & Date & Time & Chr(16) & Chr(17)
End If
Next
Else
For bytemp = 1 To 30
If Form1.Combo1.List(Form1.Combo1.ListIndex) = sockname(bytemp, 1) Then
Form1.Sockser(bytemp).SendData "ser_intf" & Text2.Text
Print #3, form3.Text1.Text & "对" & sockname(bytemp, 1) & "发信息" & Text2.Text & Date & Time & Chr(16) & Chr(17)
Exit For
End If
Next
End If
End Sub
Private Sub Command9_Click()
List1.Clear
Command9.Enabled = False
End Sub
Private Sub Form_Load()
Me.stopser.Enabled = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload Form2
Unload form3
Unload Form4
Unload Form5
Print #3, "服务器:以关闭程序!" & Chr(16) & Chr(17)
Close #3
Dim i As Integer
For i = 0 To 30
Sockser(i).Close
Next
' Remove the icon from the tray.
With TheData
.uFlags = 0
End With
Shell_NotifyIcon NIM_DELETE, TheData
' Restore the original window proc.
SetWindowLong Form1.hwnd, GWL_WNDPROC, OldProc
End Sub
Private Sub lookfen_Click()
Call Command11_Click
End Sub
Private Sub quitprg_Click()
Unload Form1
End Sub
Private Sub runfen_Click()
Call Command10_Click
End Sub
Private Sub Sockser_Close(Index As Integer)
Sockser(Index).Close
Close #(Index + 30)
If sockip(Index, 1) = 9 Then
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "完成了考试以正常离线!")
Print #3, "服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "完成了考试以正常离线!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Combo1.RemoveItem sockip(Index, 3)
For bytemp = sockip(Index, 3) To 30
If sockip(bytemp, 3) = 0 Then Exit For
sockip(bytemp, 3) = sockip(bytemp, 3) - 1
bytemp = idend(sockname(Index, 2))
If bytemp = 0 Then
Open App.Path & "\idend.dat" For Append As 7
Print #7, sockname(Index, 2) & Chr(16) & Chr(17)
Print #7, sockname(Index, 1) & Chr(16) & Chr(17)
Print #7, "999" & Chr(16) & Chr(17)
Close #7
End If
Next
ElseIf sockip(Index, 1) = 5 Then
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "发生末知错误!以离线!")
Print #3, "服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "发生末知错误!以离线!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Combo1.RemoveItem sockip(Index, 3)
For bytemp = sockip(Index, 3) To 30
If sockip(bytemp, 3) = 0 Then Exit For
sockip(bytemp, 3) = sockip(bytemp, 3) - 1
bytemp = idend(sockname(Index, 2))
If bytemp = 0 Then
Open App.Path & "\idend.dat" For Append As 7
Print #7, sockname(Index, 2) & Chr(16) & Chr(17)
Print #7, sockname(Index, 1) & Chr(16) & Chr(17)
Print #7, "999" & Chr(16) & Chr(17)
Close #7
End If
Next
Else
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "以离线!")
Print #3, "服务器:" & sockname(Index, 1) & "考号:" & sockname(Index, 2) & "以离线!" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
End If
sockip(Index, 0) = 1
sockip(Index, 1) = 1
sockip(Index, 2) = 1
sockip(Index, 3) = 0
studentinf(Index) = ""
Label4(Index - 1).Caption = ""
Command1(Index).Picture = LoadPicture(App.Path & "\null.bmp")
If Not (Command1(Index).ToolTipText = "" Or Command1(Index).ToolTipText = vbNullString) Then
Text3.Text = Str(Val(Text3.Text) - 1)
End If
Command1(Index).ToolTipText = vbNullString
Text1.Text = Str(Val(Text1.Text) - 1)
End Sub
Private Sub Sockser_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Dim i As Integer
Form1.List1.AddItem ("服务器:一个考生端请求连接")
Print #3, "服务器:一个考生端请求连接" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
For i = 1 To 30
If sockip(i, 1) = 1 Then
Sockser(i).Accept requestID
sockip(i, 1) = 2
Command1(i).Picture = LoadPicture(App.Path & "\comme.bmp")
Text1.Text = Str(Val(Text1.Text) + 1)
Form1.List1.AddItem ("服务器:一个考生端以连接" & "在sock:" & i & "上")
Print #3, "服务器:一个考生端以连接" & "在sock:" & i & "上考生IP:" & Sockser(i).RemoteHostIP & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Exit For
End If
Next
If i >= 31 Then
Form1.List1.AddItem ("服务器:一个考生端请求的连接没成功!可能是sock不足")
Print #3, "服务器:一个考生端请求的连接没成功!可能是sock不足" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
End If
End Sub
Private Sub Sockser_DataArrival(Index As Integer, ByVal bytesTotal As Long)
dat(Index) = ""
Sockser(Index).GetData dat(Index)
Select Case Left(dat(Index), 8)
Case "username"
Form1.List1.AddItem ("服务器:考生端请求登陆认证!考号为:" & Right(dat(Index), 12))
Print #3, "服务器:考生端请求登陆认证!考号为:" & Right(dat(Index), 12) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
sockip(Index, 0) = findid(Index, Right(dat(Index), 12))
Select Case (sockip(Index, 0))
Case 1
Form1.List1.AddItem ("服务器:考生端请求登陆认证完成!考号为:" & sockname(Index, 2))
Print #3, "服务器:考生端请求登陆认证完成!考号为:" & sockname(Index, 2) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Sockser(Index).SendData "user__ok" & sockname(Index, 1) & "\" & fen
Form1.Command1(Index).Picture = LoadPicture(App.Path & "\stud.bmp")
sockip(Index, 0) = 1
Case 2
Dim sp As String
sp = ""
sockip(Index, 0) = findidb(Index, Right(dat(Index), 12), sp)
If sockip(Index, 0) = 1 Then
Form1.Sockser(Index).SendData "user__ok" & sockname(Index, 1) & "\" & sp
sockip(Index, 0) = 2
Form1.List1.AddItem ("服务器:考生端请求登陆认证完成!是加时或断线再考,考号为:" & sockname(Index, 2))
Print #3, "服务器:考生端请求登陆认证完成!是加时或断线再考,考号为:" & sockname(Index, 2) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Command1(Index).Picture = LoadPicture(App.Path & "\stud.bmp")
sp = ""
Else
Form1.List1.AddItem ("服务器:考生端请求登陆认证失败!因为该考生以登陆过!考号为:" & Right(dat(Index), 12))
Print #3, "服务器:考生端请求登陆认证失败!因为该考生以登陆过!考号为:" & Right(dat(Index), 12) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Sockser(Index).SendData "kaolobad"
End If
Case 9
Form1.List1.AddItem ("服务器:考生端请求登陆认证失败!因为该考号不存在")
Print #3, "服务器:考生端请求登陆认证失败!因为该考号不存在" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Form1.Sockser(Index).SendData "user_bad"
End Select
Case "get_data"
If sockip(Index, 1) = 3 Then
bytemp = openf(Index)
Command1(Index).Picture = LoadPicture(App.Path & "\send.bmp")
Else
Text2.Text = "not login as get_data"
Sockser(Index).Close
End If
Case "loigdata"
bytemp = sendata(Index)
Case "startkao"
If sockip(Index, 1) = 4 Then
sockip(Index, 1) = 5
If sockip(Index, 0) = 1 Then
On Error Resume Next
MkDir App.Path & "\job\" & sockname(Index, 2)
If Err.Number = 0 Then
MkDir App.Path & "\job\" & sockname(Index, 2) & "\data"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\inf.dat" For Output As #(Index + 30)
Print #(Index + 30), studentinf(Index)
Close #(Index + 30)
On Error GoTo 0
Else
On Error GoTo 0
Err.Number = 0
End If
End If
Command1(Index).Picture = LoadPicture(App.Path & "\ok.bmp")
Command1(Index).ToolTipText = "考生姓名:" & sockname(Index, 1) & " 考号:" & sockname(Index, 2)
Text3.Text = Str(Val(Text3.Text) + 1)
Label4(Index - 1).Caption = "余下:60分钟"
Form1.List1.AddItem ("服务器:一个考生端以开始考试!考号为:" & sockname(Index, 2))
Print #3, "服务器:一个考生端以开始考试!考号为:" & sockname(Index, 2) & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
sockip(Index, 3) = Form1.Combo1.ListCount
Form1.Combo1.AddItem sockname(Index, 1)
Sockser(Index).SendData "get_time"
Else
Sockser(Index).Close
End If
Case "put_time"
Label4(Index - 1).Caption = "余下:" & Right(dat(Index), Len(dat(Index)) - 8) & "分钟"
If sockip(Index, 0) = 2 Then
Open App.Path & "\Useridb.dat" For Binary As #(Index + 30)
Else
Open App.Path & "\Userid.dat" For Binary As #(Index + 30)
End If
bytime = writetime(Index, sockname(Index, 2), Right(dat(Index), Len(dat(Index)) - 8))
Case "savedata"
If sockip(Index, 1) = 5 Then
Sockser(Index).SendData "get_save"
End If
Case "put_save"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\result.dat" For Output As #(Index + 30)
Print #(Index + 30), Right(dat(Index), bytesTotal - 8)
Close #(Index + 30)
Sockser(Index).SendData "save__ok"
Print #3, sockname(Index, 2) & "以交单选题多选题和判断题" & Chr(16) & Chr(17)
Case "put1save"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\resultb.dat" For Output As #(Index + 30)
Print #(Index + 30), Mid(dat(Index), 9, bytesTotal - 8)
Close #(Index + 30)
Sockser(Index).SendData "save_1ok"
Case "put2save"
Open App.Path & "\job\" & sockname(Index, 2) & "\data\resultc.dat" For Output As #(Index + 30)
Print #(Index + 30), Mid(dat(Index), 9, bytesTotal - 8)
Close #(Index + 30)
Sockser(Index).SendData "save_ook"
Case "end_stud"
Form1.List1.AddItem ("服务器:" & sockname(Index, 1) & "以交卷!请求断开")
Print #3, "服务器:" & sockname(Index, 1) & "以交卷!请求断开" & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Sockser(Index).SendData "ok_unlog"
sockip(Index, 1) = 9
Case "help__me"
Form1.List1.AddItem ("考生:" & sockname(Index, 1) & "求助在IP:" & Sockser(Index).RemoteHostIP)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
Print #3, "考生:" & sockname(Index, 1) & "求助在IP:" & Sockser(Index).RemoteHostIP & "在线教师:" & form3.Text1 & Chr(16) & Chr(17)
Form1.List1.ListIndex = Form1.List1.ListCount - 1
End Select
End Sub
Private Sub startser_Click()
Call Command2_Click
End Sub
Private Sub stopser_Click()
Call Command3_Click
End Sub
Private Sub Timer2_Timer()
Dim i As Integer
For i = 1 To 30
If sockip(i, 1) = 5 Then
Sockser(i).SendData "get_time"
End If
Next
End Sub
Private Sub twostud_Click()
Call Command6_Click
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -