Windows 2008Windows VistaWindows 2003Win32.NET 3.0Windows XP.NET 2.0.NET 3.5Windows FormsC# 2.0C# 3.0中级开发Windows.NETC#
AIM 会话跟踪实用程序






4.60/5 (5投票s)
跟踪 AIM 用户的状态(在线、离开、离线)。
引言
这是我在 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 { }
}
结论
代码不多。下载并按原样使用该程序。上述下载中的开发者密钥是我的开发者密钥,因此我希望你们每个人都能获取自己的开发者密钥。