以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于启动QQ客户端的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147655)

--  作者:温馨的大树
--  发布时间:2020/3/21 12:41:00
--  关于启动QQ客户端的问题

图片点击可在新窗口打开查看此主题相关图片如下:万能五笔截图_20200321123141.png
图片点击可在新窗口打开查看
出在上面截图的问题是什么呢?


客户端登录按键代码如下:If QQClient.Ready Then
    MessageBox.show("QQClient已经启动,请先关闭","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
QQClient.ServerIP = e.Form.Controls("txtIP").Value  \'指定服务器IP地址
QQClient.ServerPort = e.Form.Controls("txtPort").Value  \'指定服务器端口
QQClient.UserName = e.Form.Controls("cmbDepartment").Value & "." & e.Form.Controls("txtUserName").Value \'指定登录用户名
QQClient.Password = e.Form.Controls("txtPassword").Value
If QQClient.Start() = True \'如果登录成功
    e.Form.Controls("btnChat").Enabled = True
    Dim msg As String =  "恭喜,OpenQQ登录成功!"
    If QQClient.ServerMessage > "" Then \'如果服务器返回了欢迎信息
        msg = msg & QQClient.ServerMessage
    End If
    popMessage(msg,"提示",PopiconEnum.Infomation,5)
Else \'如果登录失败,显示服务器返回错误信息
    e.Form.Controls("btnChat").Enabled = False
    PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)
End If

登录界面打开聊天窗口按键的代码是:
If  QQClient.Ready Then
    QQClient.OpenChatWindow()
End If

退出 按键代码:

If QQClient.Ready = True Then
    QQClient.Stop()
    e.Form.Controls("btnChat").Enabled = False
End If

--  作者:有点蓝
--  发布时间:2020/3/21 13:41:00
--  
服务端UserLogging事件代码发上来看看,应该是添加了重复名称的好友
--  作者:温馨的大树
--  发布时间:2020/3/21 14:45:00
--  回复:(有点蓝)服务端UserLogging事件代码发上来看看...
Dim pts() As String = e.UserName.Split(".")
Dim dr1 As DataRow
dr1 = DataTables("用户").Find("部门 = \'" & pts(0) & "\' And 姓名 = \'" & pts(1) & "\'")
If dr1 Is Nothing  Then \'判断此用户不存在
    e.Message  = "用户名错误!" \'返回给登录者的提示信息
    Return
End If
If dr1("密码") <> e.Password Then \'如果密码错误
    e.Message  = "登录密码错误!" \'返回给登录者的提示信息
    Return
End If
e.Success = True \'允许用户登录
\'添加所有同事为好友
For Each dr2 As DataRow In DataTables("用户").DataRows
    Dim nm As String =  dr2("部门") & "." & dr2("姓名")
    If nm <> e.UserName Then \'如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

--  作者:温馨的大树
--  发布时间:2020/3/21 14:50:00
--  回复:(有点蓝)服务端UserLogging事件代码发上来看看...
目前服务端我这边没有连接阿里云的数据库,客户端有连接阿里云数据库,服务端有建立一个内部数据源的用户表。
另外是否在服务端和客户端都要建立一个信息表啊,用于存放聊天相关数据啊

--  作者:有点蓝
--  发布时间:2020/3/21 15:11:00
--  
服务端华为客户端都连接大同一个数据库,使用同一个用户表。保证用户表不会有任何的空行,或者空的用户,或者重复的部门+用户名
[此贴子已经被作者于2020/3/21 15:11:19编辑过]