我思故我在

歌德说,人的一辈子其实只能做一件事,做了,就要扎扎实实地把它做好。我也只能通过一种行业来认定我自己的人生价值。我选择了写程序,我希望我能写好。
随笔 - 55, 评论 - 457, 引用 - 159

导航

每月存档

最新留言

广告

 

了解这方面内容的起因是早上有位朋友让我看一段关于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可用,还是只读的。
当然各个对象可能还有一些相应的方法就不多介绍,我介绍的这些通过对象浏览器就可以看明白,其中还有对象或成员我现在还没学会使用,现在只是大致了解一下,我希望看到这篇文章的人也有了一点初步了解。

 

打印 | 张贴于 2004-06-11 13:10:00 | Tag:暂无标签

留言反馈

#回复: 关于MSN 6的一些API介绍 编辑
MSN API ,能给我也发一份吗?谢谢!!!!
xiangxubing-1@163.com
2007-12-12 17:43:00 | [匿名用户:xiangxubing]
#回复: 关于MSN 6的一些API介绍 编辑
麻烦你给我发一份msn api ,ml_zhao@163.com
2007-11-14 18:08:00 | [匿名用户:ray]
#回复: 关于MSN 6的一些API介绍 编辑
给我也发一份 lhauii@hotmail.com
先谢谢了
2007-11-09 15:17:00 | [匿名用户:LHAUII]
#回复: 关于MSN 6的一些API介绍 编辑
給我也發一份吧,在此先謝呢。
wangjn163@163.com
2007-08-30 15:11:00 | [匿名用户:Jeff Wang]
#回复: 关于MSN 6的一些API介绍 编辑
给我也发一份 ywgking@hotmail.com
2007-07-17 11:41:00 | [匿名用户:yuwenge]
#回复: 关于MSN 6的一些API介绍 编辑
给我也发一份 luowei886@hotmail.com
2007-07-15 23:10:00 | [匿名用户:sdfd]
#回复: 关于MSN 6的一些API介绍 编辑
MSN API 我也要 大侠也请给我一份, tw2050@163.com 谢谢!
2007-07-11 17:16:00 | [匿名用户:tw]
#回复: 关于MSN 6的一些API介绍 编辑
大哥~~ 也請mail給小弟我
chienliang.yang@gmail.com
2007-04-17 14:15:00 | [匿名用户:羊]
#回复: 关于MSN 6的一些API介绍 编辑
找了半天找不到API,找到这里来了,
能够把下载API地地址给我,或者发一份给我

加我msn也可以

thebluesoul@hotmail.com

谢谢了
2007-03-12 17:16:00 | [匿名用户:matthew]
#回复: 关于MSN 6的一些API介绍 编辑
MSN API我也想要啊.
5azp@163.com
能给我也发一份吗?谢谢!

2007-01-27 15:25:00 | [匿名用户:AA]
#回复: 关于MSN 6的一些API介绍 编辑
LittleRain1984@gmail.com

索要msn接口的文档,谢谢了
有相关的资料的话也希望提供,谢谢
2007-01-23 23:44:00 | [匿名用户:小雨不打伞]
#回复: 关于MSN 6的一些API介绍 编辑
boyle0410@163.com
需要一份msn接口文档谢谢
2007-01-13 21:50:00 | [匿名用户:7in10]
#回复: 关于MSN 6的一些API介绍 编辑
MSN API我也想要.
sarrary@sohu.com
多谢啦!!!
2007-01-11 14:37:00 | [匿名用户:sarrary]
#回复: 关于MSN 6的一些API介绍 编辑
能否给我一份MSN API接口文档资料..谢谢了.我的油相是:bluetoothtangqingyou@126.com 谢谢了.
2006-12-22 16:19:00 | [匿名用户:渴望得到帮助的人]
#回复: 关于MSN 6的一些API介绍 编辑
MSN API我也想要.
cdlister@gmail.com
多谢啦!!!
2006-12-20 15:58:00 | [匿名用户:cdli]
#回复: 关于MSN 6的一些API介绍 编辑
msn api我也要!!!

lina0617@gmail.com

thx!!
2006-12-06 13:05:00 | [匿名用户:lina]
#回復: 關於MSN 6的一些API介紹 编辑
可否也給我一份MSN API呢?
bibol.wu@gmail.com
感謝萬分! :)
2006-11-27 16:38:00 | [匿名用户:BiBol]
#re: 关于MSN 6的一些API介绍 编辑
MSN API ,能给我也发一份吗?谢谢!
AA_SOFT@163.com
2006-11-09 16:35:00 | [匿名用户:Ring]
#re: 关于MSN 6的一些API介绍 编辑
MSN API ,能给我也发一份吗?谢谢!
qikersa@163.com
2006-10-30 15:34:00 | [匿名用户:coco]
#re: 关于MSN 6的一些API介绍 编辑
MSN API ,能给我发一份吗?谢谢!
aro99@163.com
2006-10-24 17:02:00 | [匿名用户:aro]
#re: 关于MSN 6的一些API介绍 编辑
最近在做关于MSN的东西,以前的接口好像不支持现在的版本啊
不知道怎么做,能帮我给一份看一下吗?谢谢了 xinwei586@163.com
2006-09-25 18:42:00 | [匿名用户:pocojack]
#re: 关于MSN 6的一些API介绍 编辑
能寄一份api給我嗎 ? 感謝您了
trumpetkuo@hotmail.com
2006-09-05 14:22:00 | [匿名用户:小喇叭]
#re: 关于MSN 6的一些API介绍 编辑
MSN API ,能给我发一份吗?感谢
simoonchen@hotmail.com


还有,MSN API可以在NET上用吗?
2006-07-23 01:21:00 | [匿名用户:星云幻想]
#re: 关于MSN 6的一些API介绍 编辑
急用,ORZ~~~~~請給我一份msn的api~~~a821070201@yahoo.com.tw
2006-07-05 22:37:00 | [匿名用户:BTOAIN]
#re: 关于MSN 6的一些API介绍 编辑
我的mail~~a821070201@yahoo.com.tw, 拜託了
2006-06-29 21:09:00 | [匿名用户:BTOAIN]
#re: 关于MSN 6的一些API介绍 编辑
能給我一份msn api嗎?感謝不盡
2006-06-29 21:08:00 | [匿名用户:BTOAIN]
#re: 关于MSN 6的一些API介绍 编辑
MSN API ,能给俺发一份吗?万分感谢!!
leikiliu@gmail.com
2006-06-16 12:13:00 | [匿名用户:liu]
#re: 关于MSN 6的一些API介绍 编辑
MSN API 我找了好久,终于找到啦,能给俺发一份吗?万分感谢!!
mzjsc@china.com
2006-06-14 17:05:00 | [匿名用户:mzjsc]
#re: 关于MSN 6的一些API介绍 编辑
MSN 7的可以適用嗎?
2006-05-24 04:06:00 | [匿名用户:QQ]
#re: 关于MSN 6的一些API介绍 编辑
给我一份,找了好久
0nsisn0@gmail.com
2006-05-07 12:39:00 | [匿名用户:NSISN]
#re: 关于MSN 6的一些API介绍 编辑
也给我一份好吗?万分感谢!
hebingwu@hotmail.com
2006-04-20 21:48:00 | [匿名用户:stronger]
#re: 关于MSN 6的一些API介绍 编辑
也给我一份MSN API好吗? ,万分感谢!

linkaichie@gmail.com
2006-04-06 09:59:00 | [匿名用户:kathy]
#re: 关于MSN 6的一些API介绍 编辑
发一份给我吧,万分感谢!
我的的email:bbai1979@hotmail.com
2006-03-21 10:57:00 | [匿名用户:bbai1979]
#re: 关于MSN 6的一些API介绍 编辑
老大有没有完整的VB例子呢?发一份给我吧,万分感谢!
jyc@cntomorrow.com
2006-03-16 13:50:00 | [匿名用户:就]
#re: 关于MSN 6的一些API介绍 编辑
兄弟啊!!首先当然是引用对象Messenger API Type Library了
怎么搞啊,那里有这个玩意。
2006-03-09 16:54:00 | [匿名用户:111]
#re: 关于MSN 6的一些API介绍 编辑
我的的email:huangyq2000@21cn.com
2006-03-08 16:16:00 | [匿名用户:moer]
#re: 关于MSN 6的一些API介绍 编辑
我也需要一份研究一下,
给我发一封好吗?
谢谢。
2006-03-08 16:15:00 | [匿名用户:moer]
#re: 关于MSN 6的一些API介绍 编辑
也给我一份MSN API好吗?
wxwyes@126.com

谢谢了.
2006-03-07 21:03:00 | [匿名用户:betty]
#re: 关于MSN 6的一些API介绍 编辑
能否也给我一份msn api呢?真诚感谢!
yurer@msn.com
2006-02-28 14:55:00 | [匿名用户:test]
#re: 关于MSN 6的一些API介绍 编辑
能否也给我一份msn api呢?真诚感谢!

tinytony32@hotmail.com
2006-02-23 16:30:00 | [匿名用户:ASDFA]
#re: 关于MSN 6的一些API介绍 编辑
首先当然是引用对象Messenger API Type Library了。

我想问问是引用的哪个API
2006-02-22 13:59:00 | [匿名用户:test]
#re: 关于MSN 6的一些API介绍 编辑
能否也给我一份msn api呢?真诚感谢!
yurer@msn.com
2006-02-22 13:54:00 | [匿名用户:test]
#re: 关于MSN 6的一些API介绍 编辑
我也想要msn api: carlyao2002@yahoo.com ,谢谢.
2006-02-20 22:21:00 | [匿名用户:carl]
#re: 关于MSN 6的一些API介绍 编辑
能否也给我一份msn api呢?真诚感谢!zlreal01@gmail.com
2006-02-16 10:38:00 | [匿名用户:zwy]
#re: 关于MSN 6的一些API介绍 编辑
我也想要msn api,最近我的msn shell不能保存聊天记录了,烦,想自己做个只要能登陆能聊天能保存聊天记录的东东就好了
2006-02-15 16:48:00 | [匿名用户:binder]
#re: 关于MSN 6的一些API介绍 编辑
MSN API 真是饥渴地想要一份: dosboy@sina.com
2006-01-29 22:16:00 | [匿名用户:风悸云动]
#re: 关于MSN 6的一些API介绍 编辑
垃圾
2006-01-18 11:05:00 | [匿名用户:爷爷]
#re: 关于MSN 6的一些API介绍 编辑
msn API麻烦来一份:hualeel@gmail.com
2006-01-11 23:33:00 | [匿名用户:中国屎太浓]
#re: 关于MSN 6的一些API介绍 编辑
我的邮件:shangmeizhai@163.com
2006-01-09 09:34:00 | [匿名用户:赏梅斋]
#re: 关于MSN 6的一些API介绍 编辑
能否也给我一份MSN API? 谢谢!

看楼上的评论说现在的MSN API只有Com接口?MSN7.5是否支持这个接口?
2006-01-09 09:33:00 | [匿名用户:赏梅斋]
#re: 关于MSN 6的一些API介绍 编辑
能否请给我一份MSN API,谢谢!
pentel_liu@hotmail.com
2005-12-22 17:16:00 | [匿名用户:pentel_liu]
#re: 关于MSN 6的一些API介绍 编辑
能否请给我一份MSN API,谢谢!
pentel_liu@hotmail.com
2005-12-22 17:16:00 | [匿名用户:pentel_liu]
#re: 关于MSN 6的一些API介绍 编辑
请给我一份MSN 的API,谢谢!han_xuntao@hotmail.com
2005-12-15 10:03:00 | [匿名用户:KIM]
#re: 关于MSN 6的一些API介绍 编辑
哪有MSN API下载啊
给我发一份,谢谢!srw962@mail.csdn.net
2005-11-18 13:38:00 | [匿名用户:山伟]
#re: 关于MSN 6的一些API介绍 编辑
MSN API能否提供message内容的即时输出,在显示在msn对话框的同时,输出到其他i/o。
2005-11-15 09:50:00 | [匿名用户:neutrino]
#re: 关于MSN 6的一些API介绍 编辑
请给我一份MSN 的API,谢谢!heven8845@163.com
2005-10-28 10:47:00 | [匿名用户:heven]
#re: 关于MSN 6的一些API介绍 编辑
请给我一份,谢谢!
ljhuacn@yahoo.com.cn
2005-10-20 15:34:00 | [匿名用户:jihua.lai]
#re: 关于MSN 6的一些API介绍 编辑
也给我一份booktrade@56.com
2005-10-19 16:23:00 | [匿名用户:ok]
#re: 关于MSN 6的一些API介绍 编辑
能否给我发一份
ada9922@gmail.com
2005-10-18 14:55:00 | [匿名用户:yy]
#re: 关于MSN 6的一些API介绍 编辑
能否给我发一份MSN API
hua_flower@hotmail.com
2005-10-11 09:06:00 | [匿名用户:wangyan]
#re: 关于MSN 6的一些API介绍 编辑
能否给我发一份
iamjimtw@gmail.com
2005-10-04 13:48:00 | [匿名用户:J!m]
#re: 关于MSN 6的一些API介绍 编辑
能否给我发一份
xiao_john@sina.com.cn
2005-09-20 22:31:00 | [匿名用户:乘风]
#re: 关于MSN 6的一些API介绍 编辑
MSN7的API又变了,先在一直没找到,谁知道能不能mail给我,谢谢

wenky2@163.com
2005-09-20 09:19:00 | [匿名用户:大周]
#re: 关于MSN 6的一些API介绍 编辑
是否能麻煩各位大大能mail MSN的API給我呢....感激不盡...謝謝!!

howard@ms23.url.com.tw
2005-09-08 01:57:00 | [匿名用户:Howard Wang]
#re: 关于MSN 6的一些API介绍 编辑
可不可以寄一份MSN 的 API給我, E-mail:tsys83@yahoo.com.tw
謝謝!
2005-08-05 11:54:00 | [匿名用户:吳Sir]
#re:关于MSN 6的一些API介绍 编辑
关于MSN 6的一些API介绍ooeess
2005-06-10 16:53:00 | [匿名用户:颗粒计数器]
#re:关于MSN 6的一些API介绍 编辑
^_^,Pretty Good!
2005-04-16 01:03:00 | [匿名用户:试验面条机]
#re:关于MSN 6的一些API介绍 编辑
^_^,Pretty Good!
2005-04-10 19:54:00 | [匿名用户:试验机万能试验机]
#re: 关于MSN 6的一些API介绍 编辑
那位大侠能发给我一份MSN 的 API,多谢了!我的邮箱: niange@21cn.com
或者: ycj_first@163.com
2005-04-04 11:26:00 | [匿名用户:ycj]
#re: 关于MSN 6的一些API介绍 编辑
谁说.Net玩不转MSN的了
2005-03-25 12:59:00 | [匿名用户:ffb]
#和MSN编程有关的一些文章 编辑
Ping Back来自:www.donews.net
2005-03-10 19:25:00 | [匿名用户:阿力]
#re: 关于MSN 6的一些API介绍 编辑
算了,还是给我发到allweluck@gmail.com,别发到wangls@cape.com.cn了
2004-10-18 10:26:00 | [匿名用户:msn爱好者]
#re: 关于MSN 6的一些API介绍 编辑
我有msn8,9的delphi源代码。

需要的给我发邮件wangls@cape.com.cn
可以封装成active x控见
2004-10-18 10:25:00 | [匿名用户:msn爱好者]
#re: 关于MSN 6的一些API介绍 编辑
dotman不更新了,9以后的协议都用不了,我的小P机器人也无法运行了,5555555
2004-09-15 12:39:00 | [匿名用户:pyw]
#回复: 关于MSN 6的一些API介绍 编辑
知道dotmsn如何自动加别人为好友嘛?
2004-06-21 09:52:00 | [匿名用户:ffb]
#回复: 关于MSN 6的一些API介绍 编辑
我觉得它提供的发消息的功能有点不爽
MessengerAPI.Messenger的InstantMessage方法,他是打开发送消息的窗口,比如
Set MsgrContact = MsgrContacts.Item(128)
If MsgrContact.Status = MISTATUS_ONLINE Then
objMessenger.InstantMessage MsgrContact
DoEvents

SendKeys "test"
DoEvents
SendKeys "{enter}"
DoEvents
SendKeys "%{F4}"
End If
2004-06-14 14:14:00 | [匿名用户:shannon]
#回复: 关于MSN 6的一些API介绍 编辑
我在VC下使用MSN的接口,只能获取一些好友名单,以及修改自己的状态等等,不能找到发送messager的接口函数。
2004-06-13 15:18:00 | [匿名用户:忙碌的兔子]
#回复: 关于MSN 6的一些API介绍 编辑
这样做的话,要始终受MS的气,必须要先安装MSN,如果读协议的话,就自由多
2004-06-11 17:18:00 | [匿名用户:豆腐]
#回复: 关于MSN 6的一些API介绍 编辑
这个问题就是这样的,我以前也做过类似的程序

新版的msn的com借口比原来的东西少得多

以前的msn协议是开放的,后来也开始不开放了

ms的msn战略发生变化了
2004-06-11 16:32:00 | [匿名用户:tinyfool]
#回复: 关于MSN 6的一些API介绍 编辑
微软大大di坏了,把类型库都藏起来了,.net玩不转msn messenger的
2004-06-11 15:09:00 | [匿名用户:rIPPER]
#回复: 关于MSN 6的一些API介绍 编辑
loho :
我在VB6下写的!我没发现他有.net Assembly只包含四个com对象
//msnmsgr.exe
//Messenger Private Type Library
//Version: 1.0
MessengerPrivate;
GUID = {53CED51D-432B-45B2-A3E0-0CE2C24235D4};

//msnmsgr.exe/2
//Messenger API Type Library
//Version: 1.0
MessengerAPI;
GUID = {E02AD29E-80F5-46C6-B416-9B3EBDDF057E};

//msnmsgr.exe/3
//Messenger Dispatch Implementation
//Version: 1.0
DispImpl;
GUID = {9071135F-52C4-4D38-A787-2C5367CB5075};

我提到的是Messenger API Type Library(msnmsgr.exe/2)
但是如果在.net用这个Com组件那么和VB6就应该差不多了
2004-06-11 14:13:00 | [匿名用户:shannon]
#回复: 关于MSN 6的一些API介绍 编辑
你写的程序是在.NET环境吗?
2004-06-11 13:51:00 | [匿名用户:loho]
#回复: 关于MSN 6的一些API介绍 编辑
不错.
最起码可以改状态.
2004-06-11 13:21:00 | [匿名用户:montaque]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.1.8