Null's Notebook

疯狂的电脑爱好者...

用户操作
[即时聊天] [发私信] [加为好友]
NullID:HeTaoOS
31614次访问,排名3729好友0人,关注者0
HeTaoOS的文章
原创 13 篇
翻译 0 篇
转载 0 篇
评论 7 篇
最近评论
banxia2005:对我要做的数据库有点帮助
HeTaoOS:可以到这里
http://download.csdn.net/source/161936

http://www.skycn.com/soft/33189.html

下载该程序。

如有意见和建议,请 Email 给我。
dwp008:
binbinW:厉害啊
shoutor:不错
文章分类
    收藏
      相册
      分析图片
      软件截图
      友情链接
      我的博客(RSS)
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 改造 dotMSN 2.0.2收藏

      新一篇: [VB.net]调用系统自带的 zLib.dll 实现 ZIP 压缩 | 

      dotMSN 2.0.2 非常好用,还提供源码和使用说明,真是好人啊,可以到这里下载 http://www.xihsolutions.net/dotmsn/
      PS:
      看到国内某些软件,点大的东西,一点技术含量都没,还收费,还捆绑垃圾!!!

      但是,dotMSN 2.0.2 的友好性操作不如,1.2 版的,所以我就对它动点小手术,为这个工程多开几个方便之门。

      A:
      首先变化最大的是,命名空间,在原来的 “dotMSN” 前面加了个 “XihSolutions.”,这是开发者的名字,流下一个名字是应该的,综观全码,除了注释声明,就这里有他的名字,很干净。
      PS:
      这里有啰嗦几句了,有些人写发消息类的东西总喜欢在信息后面拖个作者的名字,何必呢。。

      如果只是个人用,如果你觉得麻烦,
      1,你可以全文搜索,将,“XihSolutions.DotMSN” 替换为 “DotMSN”,记得选在整个项目中替换,搜索隐藏文本。
      2,在 dotMSN2 的右键属性中将程序集名称和默认空间名也改了。

      PS:
      可不要加上自己的名字啊,这是道德问题!!有些人就喜欢搬别人的东西硬说是自己的。
      修改这个后,最好不要发布了,最好只是自己用

      B:
      消息发送函数 SendTextMessage(TextMessage message)
      只接受 TextMessage 类型的参数,呵呵,没以前的方便了,发个纯字符串信息,还得新建各类型。
      所以我们要来重载它
      在 SB9MessageHandler.cs 文件中找到上述函数。在它下面建立一个如下的函数
      public virtual void SendTextMessage(string message)
      {
      TextMessage Msg = new TextMessage(message);
      SendTextMessage(Msg);
      }
      这样就能直接发送字符串了。
      PS:
      记得将上面的注释也拷下来,免得提示缺少什么的。下面也相同,都要有说明的。

      C:
      全局消息初始化函数 private    DotMSN.Messenger messenger = new Messenger();
      默认是空参数的,可以给他加个有参数的,主要是免去输入默认的
      messenger.Credentials.ClientID = "msmsgs@msnmsgr.com";
      messenger.Credentials.ClientCode = "Q1P7W2E4J9R8U3S5";
      方法如下:
      定位到 Messenger.cs 文件,修改如下:
      /// <summary>
      /// Basic constructor to instantiate a Messenger object.
      /// </summary>
      ///
      public Messenger()
      {
      nsMessageProcessor = Factory.CreateNameserverProcessor();
      nsMessageHandler = Factory.CreateNameserverHandler();

      p2pHandler = Factory.CreateP2PHandler();
      p2pHandler.NSMessageHandler = nsMessageHandler;

      // set the events
      nsMessageHandler.SBCreated += new SBCreatedEventHandler
      (nsMessageHandler_SBCreated);
      nsMessageProcessor.ConnectionClosed += new EventHandler
      (nsMessageProcessor_ConnectionClosed);
      p2pHandler.SessionCreated += new SessionChangedEventHandler
      (p2pHandler_SessionCreated);
      p2pHandler.SessionClosed += new SessionChangedEventHandler
      (p2pHandler_SessionClosed);

      Credentials.ClientID = "msmsgs@msnmsgr.com";
      Credentials.ClientCode = "Q1P7W2E4J9R8U3S5";
      }

      /// <summary>
      /// Basic constructor to instantiate a Messenger object.
      /// </summary>
      ///
      public Messenger(string ClientID, string ClientCode)
      {
      nsMessageProcessor = Factory.CreateNameserverProcessor();
      nsMessageHandler = Factory.CreateNameserverHandler();

      p2pHandler = Factory.CreateP2PHandler();
      p2pHandler.NSMessageHandler = nsMessageHandler;

      // set the events
      nsMessageHandler.SBCreated += new SBCreatedEventHandler
      (nsMessageHandler_SBCreated);
      nsMessageProcessor.ConnectionClosed += new EventHandler
      (nsMessageProcessor_ConnectionClosed);
      p2pHandler.SessionCreated += new SessionChangedEventHandler
      (p2pHandler_SessionCreated);
      p2pHandler.SessionClosed += new SessionChangedEventHandler
      (p2pHandler_SessionClosed);

      Credentials.ClientID = ClientID;
      Credentials.ClientCode = ClientCode;
      }

      D:
      连接函数 .Connect(),没有参数的,加个参数,可以一起设置帐号和密码,改后,就可以这样调用咯
       messenger.Connect(accountTextBox.Text, passwordTextBox.Text);

      具体修改如下:
      /// <summary>
      /// Connect to the messenger network.
      /// </summary>
      ///
      public virtual void Connect()
      {
      Connect(credentials.Account, credentials.Password);
      }

      /// <summary>
      /// Connect to the messenger network.
      /// </summary>
      ///
      public virtual void Connect(string Account, string Password)
      {
      if (Account.Length != 0 && credentials.Account != Account)
      credentials.Account = Account;

      if (Password.Length != 0 && credentials.Password != Password)
      credentials.Password = Password;

      if (nsMessageProcessor == null)
      ////原来的,没有改变////
      }


      E:
      限制消息长度,如果发送消息大于 1668字节,就会导致程序崩溃,所以限制文本消息程度为 1024 字节PS:官方的消息限定为 800 字节
      public TextMessage(string message)
      {
      if (System.Text.Encoding.Default.GetBytes(message).Length > 1024)
      {
      //byte[] tmpByte = System.Text.Encoding.Default.GetBytes(message,0,1281);
      Text = System.Text.Encoding.Default.GetString(System.Text.Encoding.Default.GetBytes(message), 0, 1024+1);
      Text = Text.Remove(Text.Length - 1);
      }
      else
      Text = message;
      }


      记过以上修改,操作就方便些了。

      发表于 @ 2007年02月23日 13:45:00|评论(loading...)|编辑

      新一篇: [VB.net]调用系统自带的 zLib.dll 实现 ZIP 压缩 | 

      评论:没有评论。

      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © Null