当前位置:编程学习 > VC++ >>

轻松打造MSN强行聊天器

文/图 牵着蜗牛去散步
最近到公司上班实习了,郁闷的是工作时间不准上QQ,只能使用MSN。MSN和QQ有很大的不同,比如没有类似查找在线网友的功能。网上有QQ强行聊天工具,但MSN呢?今天我们就打造一个MSN强行聊天器吧。为了照顾小菜们,考虑到运行库问题,我使用兼容性最好的Visual C++ 6.0 MFC和Visual Basic6.0来实现它。
 
VC++ MFC版本
首先启动VC++6.0,选择MFC应用程序,命名工程名为MSN,单击“确定”后选择“Dialog Based”(基于对话框的应用程序)完成。在Toolbox(工具箱)中拖出一个Button控件,设置ID为IDC_BTN_MSN,Caption为“MSN强行聊天”;再拖出一个EDIT控件,设置ID为IDC_EDIT_MSN。我设计的窗体外观如图1所示。

接下来我们双击“MSN强行聊天”按钮添加单击事件,代码如下。
 
void CMSNDlg::OnBtnMsn()
{
UpdateData(TRUE); //获取EDIT文本显示,不可缺少
CString sText="";
GetDlgItemText(IDC_EDIT_MSN,sText);
if(sText.CompareNoCase("")!=NULL) //判断输入地址,由于MFC库没有现成的正则表达式库,这里就不判断电子邮件地址是否正确,主要是@符号问题
{
CString sCmd="msnim:chat?contact=";
sCmd+=sText;
ShellExecute(m_hWnd,0,sCmd,0,0,SW_SHOW);
}
else
{
AfxMessageBox("请输入一个MSN E-Mail地址之后才可以强行聊天"); //提示E-mail地址错误
}
UpdateData(FALSE);
}

添加完成后按F5键编译运行,输入一个存在的MSN邮件地址,比如msn@msn.com,单击“MSN强行聊天”按钮后,如果当前电脑安装了MSN(Windows Live Messenger)会弹出如图2所示的窗口,单击“确定”,就会打开与该联系人的聊天对话框,如图3所示。由于我测试的电脑安装的是英文版MSN,可以看见提示“msn@msn.com is not your contact lis.Add this person to your contact list.”(由于msn@msn.com不是你的联系人,单击这里添加该联系人到列表中)。

图2

看到了吧?即使不是MSN好友,现在我们也可以强行聊天了,是不是很奇妙啊?
 
VB版本
同样启动VB6.0,设置主窗体Form的Caption为MSN,在工具箱中拖出两个控件Command和Textbox,设置Command按钮的ID为cmdMsn,Caption为“MSN强行聊天”,设置Textbox的ID为textMsn。VB版和VC MFC的窗体设计很像,如图4所示。

接着我们双击“MSN强行聊天”为按钮添加单击事件代码。由于VB自带的Shell函数无法满足打开一个环境变量外的程序,所以这里使用了兼容性更强的Win32 API来打开,以下是ShellExecute函数的VB声明。
 
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 
之后我们再添加如下所示的相应代码。
 
Private Sub cmdMsn_Click()
Dim sCmd As String
Dim sText As String
Dim nRet As Integer

sCmd = sCmd & "msnim:chat?contact="
sCmd = sCmd & textMsn.Text
If textMsn.Text = "" Then
MsgBox "请输入一个MSN E-Mail地址之后才可以强行聊天"
Else
nRet = ShellExecute(0, "open", sCmd, 0, 0, vbShow)
End If
End Sub

最后按F5编译运行即可。是不是和VC++一样的运行效果呀?其实我们还可以举一反三,比如将其修改成QQ强行聊天器,方法就是把变量sCmd的字符串从“msnim:chat?contact=”改为“tencent://message/?&Uin=”。如果有兴趣的话就快来试一试吧,也许2008年最强大的IM强行聊天器就是你造的了

补充:软件开发 , Vc ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,