IMECHANGE Then
Label1 = Format(Calendar.GetCalendarDate, "yyyy-mm-dd")
End If
End Select
End Sub
查看记录的界面如图6.12:
图6.12 查看记录的界面图
6.2.6 更改管理员密码
服务器端登陆需要身份确认才能登陆,帐号和密码可以自定义,以免其他人盗用管理员身份。
密码验证时用到的部分代码:
na = GetSetting("即时通讯软件服务器", "server", "name")
pw = GetSetting("即时通讯软件服务器", "server", "password")
改新密码时用到的部分代码:
SaveSetting "即时通讯软件服务器", "server", "name", Text3
SaveSetting "即时通讯软件服务器", "server", "password", Text4
管理员帐号和密码都存在本机注册表,初始账户和密码都为空。
键值位置:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\即时通讯软件服务器\server
更改密码的界面见图6.13:
图6.13 更改密码的界面图
6.2.7 发布通知
发布通告是在菜单栏的工具里,点击即可发布你所输入的信息。通知的内容存放在tongz = GetSetting("即时通讯软件服务器", "tongz", "tongz"),其中tongz键值位置在
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\即时通讯软件服务器\server。
关键核心代码介绍:
Dim I As Integer
tongz = InputBox(vbCrLf & vbCrLf & "你要通知什么事情?", "通知", tongz)
If Trim(tongz) = "" Then tongz = "欢迎你使用本软件。"
SaveSetting "即时通讯软件服务器", "tongz", "tongz", tongz
For I = 1 To maxconnext
If Winsock1(I).State = sckConnected Then
Winsock1(I).SendData "12|" & tongz
End If
DoEvents
Next
Text2.SelStart = Len(Text2)
Text2.SelText = Date & " " & Time & "通知大家:" & tongz & vbCrLf
发布通知的界面图如图6.14:
图6.14 发放通知界面图
6.2.8 客户界面
客户机用Winsock控件发出信息,服务器端通过信息头的标识分辨客户端的要求,比如登陆、注册、注销、发送信息,另外客户端还有标签栏接收服务器发来的系统通告。
标签栏接收并显示服务器发来的通告信息。右边列表显示在线名单,双击列表可以显示个人资料,由群聊转为私聊后,可以选择选定的目标进行一对一的悄悄话。
关键代码如下:
Private Sub List1_DblClick()
If Winsock1.State <> sckConnected Then
MsgBox "你还没有登陆!", vbOKOnly + 64, "提示"
comein_Click
Exit Sub
Else
formactive = False
Form5.Show
Me.Hide
Form5.Text1 = Left(Right(List1.Text, 7), 6)
Winsock1.SendData "04|" & Left(Right(List1.Text, 7), 6)
Form5.Timer1.Enabled = True
Form5.SSTab1.TabEnabled(1) = False
Form5.SSTab1.TabEnabled(2) = False
Form5.Command1.Enabled = False
End If
End Sub
Private Sub Option1_Click() 'ql
If Option1.Value = True Then
Combo1.Enabled = False
Combo1.ListIndex = 0
End If
Text2.SetFocus
End Sub
Private Sub Option2_Click() 'sl
If Option2.Value = True Then
Combo1.Enabled = True
End If
Text2.SetFocus
End Sub
Private Sub sendmsg_click()
If Winsock1.State <> sckConnected Then
MsgBox "你还没登陆!", vbOKOnly + 64, "提示"
comein_Click
Exit Sub
End If
If Option1.Value Then
Winsock1.Se