65.9K
CodeProject 正在变化。 阅读更多。
Home

即时通讯状态指示器 - AIM, Yahoo, ICQ, MSN, Skype ...

starIconstarIconstarIconstarIconstarIcon

5.00/5 (12投票s)

2008 年 9 月 13 日

CPOL
viewsIcon

141133

downloadIcon

921

即时通讯状态指示器是一种简单可靠的方法,可以检查特定即时通讯帐户(如 Yahoo、MSN、AOL、Skype 和 ICQ)的在线状态。

引言

即时通讯状态指示器是一种简单可靠的方法,可以检查特定即时通讯帐户(如 Yahoo、AOL、MSN、Skype 和 ICQ)的在线状态。您可以创建自己的即时通讯状态指示器,无需登录到特定的通讯工具即可知道谁在线。

该指示器会要求提供协议(通讯工具名称)和屏幕名称(通讯工具 ID),并返回一个图像 URL,指示用户是联机还是离线。

下图显示了它的外观。

Using the Code

创建和使用即时通讯状态指示器非常简单。以下是创建即时通讯状态指示器的步骤。

  • 步骤 1. 打开 Microsoft Visual Studio。创建一个网站并将其命名为 IMStatusIndicator。
  • 步骤 2. 创建一个 .aspx 文件并将其命名为 IMStatusChech.aspx。
  • 步骤 3. 设计如下所示的表单。
  • FormDesign.gif
  • 步骤 4. 并编写以下代码
			// Now double click on btnGetStatus button and write 
			// the code below 

protected void btnGetStatus_Click(object sender, EventArgs e)
    {
        string Status = "";

        if (txtScreenName.Text.Trim() != string.Empty)
        {
            Status = GetIMStatus();
        }
        
        lblStatus.Text = Status;
    }

private string GetIMStatus()
    {
        if (rdbYahoo.Checked)
        {
            return GetIMStatus("yahoo", txtScreenName.Text);
        }
        else if (rdbMsn.Checked)
        {
            return GetIMStatus("msn", txtScreenName.Text);
        }
        else if (rdbAol.Checked)
        {
            return GetIMStatus("aol", txtScreenName.Text);
        }
        else if (rdbICQ.Checked)
        {
            return GetIMStatus("icq", txtScreenName.Text);
        }
        else if (rdbSkype.Checked)
        {
            return GetIMStatus("skype", txtScreenName.Text);
        }
        else return "";
    }

// GetIMStatus is an overloaded method that asks for protocot, name of the messenger and
// messenger id and returns the online/offline image that tells the status.

private string GetIMStatus(string Protocol, string ScreenName) 
    {
        string Status = "";
        switch (Protocol)
        {
            case "yahoo":
                Status = "<img src=\"http://opi.yahoo.com/online?u=" +
                    ScreenName  +"&m=g&t=0\" border=\"0\">";
                break;

            case "msn":
                Status = "<img src=\"http://www.funnyweb.dk:8080/msn/"+
                    ScreenName +"/onurl=www.braintechnosys.com/images/" +
                    "msnonline.png/offurl=www.braintechnosys.com/images/msnoffline.png/" +
                    "unknownurl=www.braintechnosys.com/images/msnoffline.png\"
                    align=\"absmiddle\">";

                break;

            case "aol":
                Status = "<img src=\"http://big.oscar.aol.com/"+
                   ScreenName +"?on_url=http://www.aim.com/remote/gr/" +
                   "MNB_online.gif&off_url=http://www.aim.com/remote/gr/MNB_offline.gif\"
                   style=\"border: none;\" alt=\"My status\" />";
                break;

            case "icq":
                Status = "<img src=\"http://web.icq.com/whitepages/online?icq=" +
                   ScreenName  +"&img=26\" />";
                break;

            case "skype":
                Status = "<img src=\"http://mystatus.skype.com/smallicon/" +
                    ScreenName + "border=\"1\" />";
                break;
        }
        return Status;
    }

现在运行项目,选择其中一种协议、通讯工具并输入通讯工具 ID,单击按钮并获取状态作为结果。 

这是输出结果.........

IM_StatusCheck.gif 

© . All rights reserved.