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

AIM 会话跟踪实用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (5投票s)

2009年3月2日

CPOL

1分钟阅读

viewsIcon

51598

downloadIcon

337

跟踪 AIM 用户的状态(在线、离开、离线)。

AIMTracker

ss_program.jpg

引言

这是我在 CodeProject 上的第一篇文章。我制作了一个小型的 AIM 即时通讯会话跟踪工具。我从 这里 获取了图片。如果这侵犯了版权,请告诉我。

该程序通过访问一个特殊的链接来轮询 AIM 用户的状态。

代码

该程序的核心只有一行代码

http://api.oscar.aol.com/presence/get?k=DEVELOPERKEY&f=xml&t=SCREENNAME1&t=SCREENNAME2...

这允许你获取 AIM 用户的状态 - 在线、离开、离线。请注意,使用此 URL 无法检查用户是否处于隐身状态(尽管可以在用户恢复在线后检查他们是否曾经处于隐身状态)。此外,你需要一个开发者密钥才能使用此服务(你可以在 这里 获取)。

由于此 URL 返回一个 XML 文档,我使用 C# 库中的 XML 工具对其进行处理。这是我用来获取每个单独元素的一般方法;你无法将其复制并粘贴到 Visual Studio 中,但它应该给你一个大致的方向。

XmlDocument xDoc = new XmlDocument();
xDoc.Load("http://api.oscar.aol.com/presence/get?k=DEVELOPERKEY&f=xml&t=SCREENNAME");
XmlNodeList Users = xDoc.GetElementsByTagName("user");  
foreach (XmlNode User in Users)
{
       string Screenname = User["displayId"].InnerText;
}

关注点

我一直注意到 .NET 程序占用相当大的内存,所以我花了 30 分钟在 Google 上搜索如何减少 .NET 程序内存大小。并且,我找到一个有用的链接:http://bytes.com/groups/net-c/302104-forcefully-releasing-memory

这是减少程序内存大小的方法

public static void ReduceMemoryUsage()
{
    try
    {
        Process CurrentProcess = Process.GetCurrentProcess();
        CurrentProcess.MaxWorkingSet = CurrentProcess.MinWorkingSet;
    }
    catch { }
}

结论

代码不多。下载并按原样使用该程序。上述下载中的开发者密钥是我的开发者密钥,因此我希望你们每个人都能获取自己的开发者密钥。

© . All rights reserved.