Foxtable(狐表)用户栏目专家坐堂 → openqq client成功登录后


  共有1965人关注过本帖树形打印复制链接

主题:openqq client成功登录后

帅哥哟,离线,有人找我吗?
yetle
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
openqq client成功登录后  发帖心情 Post By:2018/4/18 11:19:00 [只看该作者]

同时在登录窗口加了btnChat按钮做测试,登录窗口btnChat按钮点亮了,
但登录窗口关闭后,新的窗口中btnChat按钮没有点亮,offline.ico图标的按钮也没有点亮,标示登录结束后,QQClient.Ready变为了flase,那应该怎么改?
在新的窗口中afterload加入了代码:
e.Form.Controls("btnChat").Enabled = QQClient.Ready

在新的窗口中加入了按钮click事件是:
If  QQClient.Ready Then
    QQClient.OpenChatWindow()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 11:28:00 [只看该作者]

1、你登陆后,关闭【新的窗口】,然后再打开【新的窗口】,显示是否正常?

 

2、【offline.ico图标】没有点亮应该是你没有设置到点亮的代码吧?你在命令窗口执行 msgbox(QQClient.Ready) 看看弹出什么。


 回到顶部
帅哥哟,离线,有人找我吗?
yetle
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/4/18 11:33:00 [只看该作者]

1、登录后关闭新的窗口项目关闭,再次登录新的窗口也是正常的,只是两个图标都没点亮
2、offline.ico图标代码按要求已经加进去了:

1、将上述两个图标复制到项目的Images目录下,图片点击可在新窗口打开查看的文件名为offline.ico,图片点击可在新窗口打开查看的文件名为online.ico

2、在配置栏增加这个按钮,按钮图标设置为offline.ico,按钮的代码设置为:

If QQClient.Ready Then
    QQClient.OpenChatWindow()

Else

    Forms("QQClient").Open()

End
 If

3、假定这个新增按钮名称为"OpenQQ",在菜单的SystemIdle事件增加以下代码:

'此段代码用于显示OpenQQ的未读消息
Static
 OpenQQ As RibbonMenu.Button
Static
 LastTime As Date
If
 OpenQQ Is Nothing Then
    OpenQQ = ConfigBar.Items("OpenQQ")

End
 If
Dim
 txt As String
If
 QQClient.Ready
    If QQClient.UnreadCount > 0 Then
        txt = "(" & QQClient.UnreadCount & 
"
)"
    End 
If

End
 If
If
 OpenQQ.Text <> txt Then
    OpenQQ.Text = 
txt

End
 If
If
 OpenQQ.Text > "" Then
    Dim ntp As timeSpan = Date.Now - LastTime
    If ntp.TotalSeconds >= 0.5 Then
        LastTime = Date.Now
        If OpenQQ.ForeColor = Color.Red Then
            OpenQQ.ForeColor = Color.Transparent
        Else
            OpenQQ.ForeColor = Color.Red
        
End If
    End 
If

End
 If

上面代码利用新增加的按钮标题显示未读新消息数量,并每隔0.5秒切换按钮的字体颜色,形成闪烁效果,以提示用户有新消息。

通过这段代码,你还可以学到一招: 定期执行某项任务,并非一定要通过计划或定时器,望认真体会。

4、将自定义登录窗口的登录按钮的代码设置为:

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

5、将OpenQQ客户端事件Connected事件代码设置为:

ConfigBar.Items("OpenQQ").SmallImage = GetImage("online.ico")

这行代码用于在OpenQQ登录成功后,将菜单按钮的图标改为online.ico。

6、最后将OpenQQ客户端事件Disconnected事件代码设置为:

ConfigBar.Items("OpenQQ").SmallImage = GetImage("offline.ico")

这样在OpenQQ离线后,菜单按钮的图标会自动改为offline.ico。

[此贴子已经被作者于2018/4/18 11:36:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 11:44:00 [只看该作者]

登陆后,提示登陆成功后,在命令窗口执行msgbox(QQClient.Ready) 看看弹出什么

 

如果弹出为true,说明登陆没问题。图标没有显示,就是说明你没有执行到点亮图标的代码。


 回到顶部
帅哥哟,离线,有人找我吗?
yetle
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/4/18 11:55:00 [只看该作者]

放在登录窗口的登陆按钮是为ture,放到新窗口的登陆按钮为false
[此贴子已经被作者于2018/4/18 11:57:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 11:58:00 [只看该作者]

以下是引用yetle在2018/4/18 11:55:00的发言:
是为ture,找不到原因了

 

登陆成功后,执行

 

Forms("窗口1").Controls("btnChat").Enabled = QQClient.Ready


 回到顶部
帅哥哟,离线,有人找我吗?
yetle
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2018/4/18 12:30:00 [只看该作者]

放在哪呢?登录窗口afterclose和放在登录按钮登录后提示新窗口已关闭不能调用btnChat,或放在新窗口AfterLoad还是提示false
[此贴子已经被作者于2018/4/18 13:46:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/18 15:05:00 [只看该作者]

以下是引用yetle在2018/4/18 12:30:00的发言:
放在哪呢?登录窗口afterclose和放在登录按钮登录后提示新窗口已关闭不能调用btnChat,或放在新窗口AfterLoad还是提示false
[此贴子已经被作者于2018/4/18 13:46:36编辑过]

 

上传具体实例测试。


 回到顶部