分享
 
 
 

在Vs.net中使用MSN即时通讯软件(上)

王朝c#·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

作者:杨忠勋

专业:计算机软件开发及应用

语言能力:TOFEL633 GRE2140

Email:zhongxunyang@yahoo.com.cn

把 MSN 嵌入到 Vs.net 中使用?是不是听起来很奇妙?但这是真的,下面的步骤就逐步的教你如何将 MSN嵌入 到 Vs.net 中使用。

引用 (referrence)

由于 Vs.net 中存在某个 bug ,在这里无法直接引用 Messenger ActiveX 组件。你需要手动修改由 TLBImp 生成的代码中的两个方法 ,然后重新编译 , 具体方法如下:

1 使用 Tlbimp.exe 生成一个 Messenger Interop 组件

tlbimp msmgs.exe /out:Messenger.dll ( 缺省路径: C:\Program Files\Messenger )

2 反汇编此 Interop 组件 , 然后将其保存为 IL 文件 :

ildasm /text Messenger.dll /out:Messenger.il

3 使用任一文本编辑器打开此 IL 文件,然后更改如下代码 ( 将类的 private 属性改为 public):

更改 . class private auto ansi sealed DMsgrObjectEvents_SinkHelper

为 . class public auto ansi sealed DMsgrObjectEvents_SinkHelper

更改 . class private auto ansi sealed DMsgrObjectEvents_EventProvider

为 . class public auto ansi sealed DMsgrObjectEvents_EventProvider

4 编译此 IL 文件

ilasm /dll Messenger.il

5 现在我们就可以在工程里引用编译后的 dll 文件了

创建外接程序 (creating an add-in)

选择 新建项目 \ 其他项目 \ 扩展性项目 \Visual Studio .NET 外接程序,出现向导对话框。

1 选择“使用 Visual C# 创建外接程序”

2 选择使用此外接程序的开发环境,我两个都选择了。

3 给你的外接程序起个好听的名字。

4 根据你的爱好进行选择。

5 是否生成“帮助”菜单中的“关于”信息。

6 选择“完成”

创建工具窗口

我们需要把这个外接程序做成一个工具窗口。如何来做呢?我们可以使用微软提供的一个 在 .NET 中制作工具窗口 的例子。

1 引用由 VSUserControlHost 生成的 ActiveX 控件。

2 在此外接程序中的 Connect.cs 文件中的 OnConnection 方法中添加以下代码 1. object objTemp = null ; 2. string guidstr = "{716238D9-8ED3-48aa-A7A0-A73CA6FDF1EF}" ; 3. 4. EnvDTE.Window windowToolWindow = 5. applicationObject.Windows.CreateToolWindow ( 6. addInInstance, 7. "VSUserControlHost.VSUserControlHostCtl" , 8. "Messenger" , guidstr, ref objTemp); 9. 10. windowToolWindow.Visible = true ; 11. 12. VSUserControlHostLib.IVSUserControlHostCtl objControl = 13. (VSUserControlHostLib.IVSUserControlHostCtl)objTemp; 14. 15. objControl.HostUserControl( 16. System.Reflection.Assembly.GetExecutingAssembly().Location, "MsgAddin.HostUserControl" );

MSN 编程

现在我们就进入到了对 MSN 本身的编程了。在“项目”中选择“添加用户控件”。用户控件的处理方式和 windows 窗体的处理方式是一样的。然后在此“用户控件”上添加一个 ” 发送 ” 按钮,“编辑”框及一个 ListView 。我们需要用到用户控件类中的两个成员:

初始化 Messenger.MsgrObjectClass msg; Messenger.IMsgrUser CurrentUser; Messenger.IMsgrUsers Users;

在构造函数中添加如下代码 msg = new Messenger.MsgrObjectClass(); try { // 检查 MSN 是否已经登录 if (msg.LocalState == Messenger.MSTATE.MSTATE_OFFLINE) { Messenger.MessengerAppClass app = new Messenger.MessengerAppClass(); app.IMessengerApp_LaunchLogonUI(); // 等待登录完成 while (msg.LocalState != Messenger.MSTATE.MSTATE_ONLINE) System.Threading.Thread.Sleep( 5000 ); } // 获取用户列表 Users = msg.get_List(Messenger.MLIST.MLIST_CONTACT); for ( int i = 0 ; i < Users.Count; i++) { Messenger.IMsgrUser u = Users.Item(i); userList.Items.Add( new ListViewItem(u.FriendlyName, GetStateImage(u.State))); } // 获取新信息通知 msg.OnTextReceived += new Messenger.DMsgrObjectEvents_OnTextReceivedEventHandler ( this .OnTextRecieved); // 获取用户状态改变通知 msg.OnUserStateChanged += new Messenger.DMsgrObjectEvents_OnUserStateChangedEventHandler ( this .OnUserStateChanged); } // 异常处理 catch (Exception e) { MessageBox.Show(e.Message); }

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有