学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> VB >> Visual Basic中调用MSN API函数


Visual Basic中调用MSN API函数


  了解这方面内容的起因是早上有位朋友让我看一段关于MSN开发程序,现在无法运行,我打开工程发现是针对4.7编写的,而他的计算机安装的6.2,因为我也用6.2所以我在VB中查看了一下,发现是缺少Messenger Type Library。但是多了Messenger API Type Library,可能是作为Messenger Type Library的替代,但它的功能不如以前的Messenger Type Library 全面,起码我现在就发现它不能修改本地的MyFriendlyName,不明白为什么把它弄成只读的,MyStatus是可写。

  下面简单用VB具体说明怎么调用它:

  首先当然是引用对象Messenger API Type Library了。

  然后声明一个对象MessengerAPI.Messenger。

Private WithEvents oMSN As MessengerAPI.Messenger

  我们需要的东西都在这里边,简单介绍几个:

  MyContacts:IMessengerContacts 对象

  MyFriendlyName: 当前的昵称

  MyGroups: IMessengerGroupss对象

  MyPhoneNumber:返回电话号码

  MyProperty:现在没有使用

  MyServiceId :返回Service id应该是{9b017612-c9f1-11d2-8d9f-0000f875c541}]

  MyServiceName:返回Service name应该是 .NET Messenger Service

  MySigninName:返回当前的签名,eMail地址

  MyStatus:返回当前状态,MISTATUS枚举值

  其实本地属性和通过PrimaryService得到的一样

  做几个简单的演示:

  首先是登陆演示,使用MessengerAPI.Messenger的 SignIn 或者AutoSignin方法:

Public Sub SignIn(ByVal bAuto As Boolean, Optional ByVal sSignInName As String, Optional ByVal sPassword As String)
On Error GoTo ErrorHandle
If bAuto = True Then
 oMSN.AutoSignin
Else
 ManualSignIn:
 oMSN.SignIn 0, sSignInName, sPassword
End If
Exit Sub
ErrorHandle:
 Dim MConstants As MSGRConstants
 MConstants = err.Number
 If MConstants = MSGR_E_FAIL Then
  GoTo ManualSignIn
 ElseIf MConstants = MSGR_E_ALREADY_LOGGED_ON Then
  ’已经登陆
 End If
End Sub

  获取全部用户列表:

  通过Messenger的MyContacts对象(它是只读的)

  它其实就是一个IMessengerContacts对象,而IMessengerContacts类又是IMessengerContact类的一个集合,在IMessengerContact中保存联系人信息。

  因此可以这样遍历联系人。

Dim oContacts As IMessengerContacts
Dim oContact As IMessengerContact
Dim iCount As Integer
Dim i As Long
Set oContacts = oMSN.MyContacts
iCount = oContacts.Count
For i = 0 To iCount - 1
 Set oContact = MsgrContacts.Item
 List1.AddItem MsgrContact.FriendlyName & vbTab & "(" & getStatusDesc(MsgrContact.Status) & ")"
Next

  getStatusDesc函数用来返回状态文本描述:

Private Function getStatusDesc(eStatus As MISTATUS) As String
 Select Case eStatus
  Case MISTATUS_AWAY
   getStatusDesc = "走开了"
  Case MISTATUS_BE_RIGHT_BACK
   getStatusDesc = "马上回来"
  Case MISTATUS_BUSY
   getStatusDesc = "在忙碌"
  Case MISTATUS_IDLE
   getStatusDesc = "在发呆"
  Case MISTATUS_INVISIBLE
   getStatusDesc = "隐身"
  Case MISTATUS_LOCAL_CONNECTING_TO_SERVER
   getStatusDesc = "正在链接服务器"
  Case MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER
   getStatusDesc = "从服务器断开"
  Case MISTATUS_LOCAL_FINDING_SERVER
   getStatusDesc = "正在搜索服务器"
  Case MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER
   getStatusDesc = "正在和服务器同步"
  Case MISTATUS_OFFLINE
   getStatusDesc = "离线"
  Case MISTATUS_ON_THE_PHONE
   getStatusDesc = "在接电话"
  Case MISTATUS_ONLINE
   getStatusDesc = "在线"
  Case MISTATUS_OUT_TO_LUNCH
   getStatusDesc = "外出就餐"
  Case MISTATUS_UNKNOWN
   getStatusDesc = "未知"
 End Select
End Function

  获取组列表:

  方法同获取联系人,只是换了一下对象.

Dim oGroups As IMessengerGroups
Dim oGroup As IMessengerGroup
Set oGroups = oMSN.MyGroups
For Each oGroup In oGroups
 List1.AddItem oGroup.Name
Next

  下面就是将组和用户关联起来:

  明白上面的方法,这个很容易实现,IMessengerGroup类的对象中含有IMessengerContact类对象的集合。

Dim oGroups As IMessengerGroups
Dim oGroup As IMessengerGroup
Dim oContacts As IMessengerContacts
Dim oContact As IMessengerContact
Set oGroups = oMSN.MyGroups
For Each oGroup In oGroups
Set oContacts = oGroup.Contacts
For Each oContact In oContacts
List1.AddItem oGroup.Name & " " & oContact.SigninName
Next
Next

  再介绍一下服务:

  也是用样道理:

Dim oServices As IMessengerServices
Dim oService As IMessengerService
Set oServices = oMSN.Services
Set oService = oServices.PrimaryService
MsgBox oService.MyFriendlyName & getStatusDesc(oService.MyStatus) & oService.MySigninName & oService.ServiceId & oService.ServiceName

  我现在怎么觉得PrimaryService的意义不大,IMessengerServices中就一个PrimaryService可用,还是只读的。

  当然各个对象可能还有一些相应的方法就不多介绍,我介绍的这些通过对象浏览器就可以看明白,其中还有对象或成员我现在还没学会使用,现在只是大致了解一下,我希望看到这篇文章的人也有了一点初步了解。
  阅读关于 VB 的全部文章


技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"Visual Basic中调用MSN API函数"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 Visual Basic中调用MSN API函数 相关内容
Google搜索中 Visual Basic中调用MSN API函数 相关内容
雅虎中 Visual Basic中调用MSN API函数 相关内容
Sogou搜索中 Visual Basic中调用MSN API函数 相关内容

相关软件 最新回复帖子:

·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效
·用Photoshop通道将模糊肖像照片清晰化


  相关软件 Visual Basic中调用MSN API函数相关文章
用Visual Basic实现undo功能 VB中用第三方控件制作资源管理器
VB实现SQL Server 2000存储过程调用 用VB设计一个简单的加法程序
Visual Basic中轻松打造绚丽按钮 用Visual Basic为软件增加注册功能
VB应用程序中实现“查找和替换”功能 VB6如何在托盘中写入应用程序图标
Visual Basic6.0网络编程的五大散手 VB“变态”用法之有用技术和没用指针
VB“变态”用法之高效字串指针类 VB中用第三方控件打造QQ菜单
利用VB函数Dir()实现递归搜索目录 浅议VB6字节数组和字符串的相互转换
VB“超频”秘籍之隐藏的Variant变量 VB中使用水晶报表编程的一种简单方法
提高Visual Basic访问数据库的效率 利用Visual Basic实现木马攻击
用Visual Basic开发绿色软件的探讨 VB“超频”秘籍之给字符串提速