用C++Builder实现Windows 2000的Messenger

本文讲述了如何用C++Builder实现Messenger的详细方法,其中使用了如下技术:

1. 多线程序技术,防止界面出现死锁。

2. 使用了网络枚举来枚举在线的网络用户。

3. 使用了Unicode的转换函数进从AnsiString到Unicode的转换。

4. 使用了简单的不规则窗口的技术。

5. 自动安装,将自己加入系统起动中。

6. 系统托盘技术。

编程方法:

1. 如图所示在窗体上加入的有的控件:TListView,TTreeView,TMemo,菜单、托盘、按钮、状态栏

2. 针对各控件按本文所写加入代码即可。

3. 以下是发送函数

void __fastcall TFormMain::ButtonSendClick(TObject *Sender)
{
 AnsiString Message,UserName,FromName;
 TListItem *ListItem;
 if(CheckBoxAnony->Checked)FromName=EditAnony->Text;
 else FromName="";
 Message=Memo1->Text;
 if(Message==""){ShowMessage("Please Enter words to send");return;}
 if(!ListView1->SelCount){
  if(TreeView1->Selected==NULL){ShowMessage("Please select destnation");return;}
  UserName=TreeView1->Selected->Text;
  if(TreeView1->Selected->Level==1)UserName=UserName+"*";
  new NetMessageSend(false,UserName,FromName,Message,CheckBoxGetRet->Checked);
 return;
 }
 ListItem=ListView1->Selected;
 UserName=ListItem->Caption;
 if(TreeView1->Selected->Level==0)UserName+="*";
 while(UserName[1]=='\\')UserName=UserName.SubString(2,UserName.Length()-1);
 new NetMessageSend(false,UserName,FromName,Message,CheckBoxGetRet->Checked);
 for(int i=1;iSelCount;i++){
 ListItem=ListView1->GetNextItem(ListItem,sdAll,TItemStates()<  UserName=ListItem->Caption;
 if(TreeView1->Selected->Level==0)UserName+="*";
 while(UserName[1]=='\\')UserName=UserName.SubString(2,UserName.Length()-1);
 new NetMessageSend(false,UserName,FromName,Message,CheckBoxGetRet->Checked);
 }
}

以下是网络结点枚举函数,是个线程

时间: 2024-08-23 12:07:37

用C++Builder实现Windows 2000的Messenger的相关文章

Windows 2000进程细述

window|进程 许多朋友问,这个进程是什么呀,那个进程是什么呀,它是不是木马呀等等诸如此类的问题,下面来介绍一下常见的进程. 最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行): smss.exe Session Manager csrss.exe 子系统服务器进程 winlogon.exe 管理用户登录 services.exe 包含很多系统服务 lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全

为Windows 2000加速

微软的Windows 2000是一个界面漂亮.稳定.快速的系统平台,并且随着微软 .NET 战略的实施,用户也是越来越多.众所周知 Windows 对系统资源的消耗巨大,内存少了更是跑不动.从各种内存整理.系统优化工具的普遍流行便可见一斑.本文从另外的方法和角度优化 Windows 2000 .旨在抛砖引玉,希望多提供一种方法供大家应用.也希望大家能谨慎地应用本文提供的方法,作者对可能造成的任何不良后果不承担任何责任.但也不用过于担心,文中提到的修改基本都不会引起太大的麻烦,只要小心谨慎即可.下

让Windows 2000服务运行得更好

目前微软发布的操作系统都内置了"服务"功能,对于我们来说,用不到的"服务"不但会占用系统资源,更重要的是有些服务启动了会使系统被入侵(如33889"Terminal Services"终端服务."Remote Registry"支持远程连接注册表服务--),可能有些读者已经想到将这些服务"禁用"不就可以了吗?把这些服务设为"禁用"是可以防止别人入侵你的系统,但只要对方得到了你的用户名和密

用C++Builder在Windows开始按钮上绘图

熟悉Windows操作系统的软件设计人员知道,在Win95/98/NT/2000中有一任务栏(Task Bar)程序,路径为:C:\WINDOWS\SYSTEM\SYSTRAY.EXE(假设你的Windows安装在系统默认路径C:\WINDOWS).从系统功能角度分析,任务栏由几个不同的子区域组成,从左至右依次是:开始(Start)按钮.应用程序切换区(Application Switch Bar).任务栏通知区(Notification Area)以及任务栏时钟.从程序编制角度分析,任务栏程序

Windows 2000中Internet连接共享组网手记

介绍 ICS(Internet连接共享)是Windows 2000内置的一种网络连接共享服务,它可以使家庭网络或小型办公室网络用户非常容易的连接到Internet. 要使用ICS,有几点需要注意: (1)启用ICS的计算机必须具有两个网络接口:一个连接到内部局域网,通常是网卡:一个连接到Internet,通常是Modem或ISDN接口. (2)要配置ICS,必须具有Administrators组权限. (3)ICS设置完成后,本地的网络将使用动态的地址分配机制,因此不应该将此功能与其他Windo

windows 2000服务器IIS开启父路径的步骤

"开启父路径"是在Windows 2003开始有这个概念的,之前的windows xp,windows 2000自带的iis是没有"Windows 2003"这个说法的.Windows 2003自带的IIS6.0安装后默认设置是不开启父路径的. "开启父路径"主要作用: "启用父路径",ASP页面中如果使用到了include file=../header.asp 这样的代码,此项必须选上"启用父路径",..

Windows 2000 Advance Serve安全设置

网络安全应该是网络管理的一个重点,如何构建安全的企业网,是每个企业网管的重要工作,Windows 2000 Advance Serve是比较流行的服务器操作系统之一,但是要想安全的配置微软的这个操作系统,却不是一件容易的事.下面我就自己的工作经验,谈谈Windows 2000 Advance Serve网络的安全设置. 一. 定制自己的Windows 2000 Advance Serve 1. 版本的选择:Win2000有各种语言的版本,对于我们来说,可以选择英文版或简体中文版,我强烈建议:在语

Windows 2000绝版安全(初、中、高级)

具体清单如下: 初级安全篇 1.物理安全 服务器应该安放在安装了监视器的隔离房间内,并且监视器要保留15天以上的摄像记录.另外,机箱,键盘,电脑桌抽屉要上锁,以确保旁人即使进入房间也无法使用电脑,钥匙要放在另外的安全的地方. 2.停掉Guest 帐号 在计算机管理的用户里面把guest帐号停用掉,任何时候都不允许guest帐号登陆系统.为了保险起见,最好给guest 加一个复杂的密码,你可以打开记事本,在里面输入一串包含特殊字符,数字,字母的长字符串,然后把它作为guest帐号的密码拷进去. 3

八招秘籍保证Windows 2000安全

Windows 2000系统的使用者特别多,导致在受攻击的系统中高居榜首,但这不是说Windows 2000的安全性一点儿不好,只要合理配置和管理有方,还是比较安全的.本人使用Windows 2000的时间也不算短了,对于维护它的安全,也渐渐摸出了一点儿门路,下面是一点儿个人见解,不足之处,还请各位指正. 安全安装尽量减少后顾之忧 Windows 2000系统的安全应该是从安装时就一点一滴积累起来的,但这往往被人忽视.下面几点是在安装Windows 2000时需要注意的: 1.不要选择从网络上安