分享
 
 
 

Visual C++打造Windows信使服务程序

王朝vc·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

信使服务是windows 2000/XP下面的一种通信服务,通过它我们可以在网上象QQ一样进行实时的交流,但和QQ不同的是信使服务不需要拥有一个号码,它只要知道对方的IP地址--假如在局域网中,只要知道对方的计算机名就可以了。我们可以利用"net send"在命令行下面发送消息,也可以通过"控制面板-治理工具-计算机治理"中的"操作"菜单里面的"所有任务-发送控制台消息…"来发送。接收方的计算机要求必须是Win2000/XP,因为 Win9x本身是不提供信服服务的,除非你手动启动了WinPopup.。程序编译运行后,在Windows2000下启动控制台,输入:netsend 192.168.0.10 127.0.0.1"我的信使程序!"运行以上命令后,在Windows桌面上将弹出一个对话框,其上标有"我的信使程序!"字符和相关IP信息。

一、实现方法

信使服务为大家在网络上提供了简便、快捷的聊天方式,所以网上也有一些改进了的信使服务发送程序,使信息的发送可以按照自己的意愿来进行而不受微软提供的"net send"所限制。假如你经常上网,也许会收到通过信使服务发来的广告或者其他莫名其妙的信息,而在"信使服务"窗口中所显示出来的发送方的计算机名或者IP地址和你自己的竟然一样。假如你碰到过这种情况,那么你想不想知道这种改进了的信使服务发送程序是怎么实现的呢?

本实例将要带你去剖析一下Windows的信使服务,我们将从一个程序员的角度来看看这个信使服务发送程序是如何实现的。其实实现信使服务的整个过程很简单,我们只需要调用一个API函数:

NET_API_STATUS NetMessageBufferSend(

LPWSTR servername,

LPWSTR msgname,

LPWSTR fromname,

LPBYTE buf,

DWord buflen

);

其中该函数的参数说明如下:

servername:计算机名,该函数将在指定的这个计算机上面执行。假如为NULL,则表示为本地计算机,通常我们都将其设置为NULL。

msgname:目标计算机的名字或者IP地址。

fromname:源计算机的名字或者IP地址。

buf:指向一个信息缓冲区的指针,在这里你可以填上你想发送的信息。要注重的是,这个参数用的是Unicode编码。

buflen:上述信息缓冲区中的字节数。

现在函数已经介绍完了,通过这个函数我们可以发现假如想实现匿名的信使服务实在是太简单--只需要在fromname中填上一个假冒的计算机名或者IP地址就行了。下面给出一个实际例子,在这个程序中,我们从命令行参数接受目标计算机和源计算机名字(IP地址),同时我们还可以设定信息发送的次数。

二、编程步骤

1、启动Visual C++6.0,新建项目netsend,选择控制台模式;

2、在项目中添加新文件netsend.c;

3、添加代码,编译运行程序。

三、程序代码

/////////////////////////////////////////////////////////////////////////

#define _UNICODE

#define UNICODE

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <wchar.h>

#include <windows.h>

#include <locale.h>

#include <lm.h>

#pragma comment(lib,"netapi32.lib")

int wmain(int argc, wchar_t *argv[])

{

int count;

wchar_t *wdest, *wfrom, *buffer,*wtarget;

DWORD dwReturn;

if((argc <4) (argc >5))

{

printf("Usge: %S <DestIP> <SourIP> <Message> [Count]\n",argv[0]);

printf("Count: Count means number of times to send message,default is 1.\n");

return 0;

}

wdest = argv[1]; //目标计算机

wfrom = argv[2]; //源计算机

buffer = argv[3]; //发送的信息

count = _wtoi(argv[4]); //发送次数,缺省为1次

if(count ==0)

count = 1;

printf("count = %d\n",count);

dwReturn = NetMessageBufferSend(NULL, wdest, wfrom,

(LPBYTE)buffer, 2*lstrlen(buffer)); //因为buffer是Unicode编码,所以需要乘以2

if(dwReturn == NERR_SUCcess)

{

printf("Send OK!");

while(count-->1)

{

NetMessageBufferSend(NULL, wtarget, wfrom, (LPBYTE)buffe,2*lstrlen(buffer));

}

return 0;

}

if(dwReturn == NERR_NameNotFound)

{

printf("The user name could not be found.\n");

return 0;

}

if(dwReturn == NERR_NetworkError)

{

printf("A general failure occurred in the network hardware.\n");

return 0;

}

if(dwReturn == ERROR_NOT_SUPPORTED)

{

printf("This network request is not supported.\n");

return 0;

}

if(dwReturn == ERROR_INVALID_PARAMETER)

{

printf("The specified parameter is invalid.\n");

return 0;

}

if(dwReturn == ERROR_ACCESS_DENIED)

{

printf("The user does not have Access to the requested information.\n");

return 0;

}

else

printf("Unknown error!\n");

return 0;

}

四、小结

本实例开发一个Windows信使服务程序,以帮助读者深入了解Windows信使服务实现的内幕。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有