8月24日,,终于有了net send

原创 2004年09月19日 19:34:00

今在 电脑编程技巧与维护上看到了那个自己编程写局域网发信息的文章,,就是实现net send 的功能,,主要的部分就是用了 netApi32.dll 中的 NetMessAgeBufferSend()函数,,想到自己上学期一直想编个net send的程序,,现在终于有盼头了 呵呵,,
采用倒叙的方式,,先把写好的程序贴着,,然后慢慢分析
#include <stdio.h>
#include <windows.h>
#include <lm.h>

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


//#define UNICODE
#define MAXLEN 256

int main(int Argc,char *Argv[])
{
 //WSADATA WSADAtA;
 //WSAStartup(MAKEWORD(2,2),&WSADAtA);
 DWORD rc;
 int i=1;
 wchar_t server[MAXLEN],ToNAme[MAXLEN],msg[MAXLEN];
 if(Argc!=4&&Argc!=5){
  printf("/nusAge:netsend ////servernAme ToUserNAme /"messAge/"/n");
  return 1;
 }
 mbstowcs(server,Argv[1],MAXLEN);
 server[MAXLEN-1]=L'/0';
 mbstowcs(ToNAme,Argv[2],MAXLEN);
 ToNAme[MAXLEN-1]=L'/0';
 mbstowcs(msg,Argv[3],MAXLEN);
 msg[MAXLEN-1]=L'/0';
 if(Argc==5) i=atoi(Argv[4]);

 printf("/n Here we go...../n");
 while(i--){
  rc = NetMessageBufferSend(server,ToNAme,NULL,msg,MAXLEN);
 }
 if(rc!=NERR_Success)
 {
  printf("NMBS() returned %lu/n",rc);
  return 1;
 }
 printf("/n Done./n");
 return 0;

}


好,,来谈谈最郁闷的,,看NetMessAgeBufferSend()的msdn里资料,说是要用头文件lmmsg.h  加了这个后,,就是3个错误,,都出在lmmsg.h里,,调了很久,后来把所有的代码都注释掉了 还是那3个错误,,看来不是我的问题了,,后来在网上翻到一篇用那个函数的程序,,看到他用的头文件是lm.h。我学,,那3个错误没有了,,可msdn里介绍的用法
#define UNICODE
   #define MESGLEN 50
   WCHAR awcToName[] = TEXT("DomainName*");
   WCHAR awcFromName[] = Text("MyComputer");
   WCHAR awcMesgBuffer[MESGLEN] = Text("This ia Test Message");
   NET_API_STATUS nasStatus;

   nasStatus = NetMessageBufferSend(NULL,
                                    awcToName,
                                    awcFromName,
                                    awcMesgBuffer,
                                    MESGLEN);
却出错,,类型不匹配,, 难道不能用WCHAR吗?
WINNT.H

#ifndef _MAC
typedef wchar_t WCHAR;    // wc,   16-bit UNICODE character
#else
// some Macintosh compilers don't define wchar_t in a convenient location, or define it as a char
typedef unsigned short WCHAR;    // wc,   16-bit UNICODE character
#endif
//---------------------------------------------------------
STDIO.H

#ifndef _MAC
#ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#define _WCHAR_T_DEFINED
#endif

看样子 wchar_t 应该和 WCHAR 是一样的
后来我试了,,两种都没没问题,,那我以前?? 奇怪了


mbstowcs() 是将ASCII字符转化成UNICODE字符的函数,,
mbstowcs(server,Argv[1],MAXLEN);
server[MAXLEN-1]=L'/0'; -->这句一直不明白为什么要这样,,'/0'不能用mbstowcs()转化吗?

net send 命令只需要给出要发送的主机名或ip,不需要指出要发送到的主机上的用户名,,而netmessAgebuffersend则必须指出,,而且自己的用户名也必须指定,,而且要是个确实存在的用户,为NULL时,发送当前的用户名..


其实这个程序完全是我照抄的了,,而且还有一部分没懂,网上那份程序我也付在附件里,,下一步要做的是用NetMessAeNameEnum() 列举机器上的用户,,然后向那台机子上的所有用户都发,,,再下一步 我想用封包技术直接模拟net send  这在猪海时我已经试过,,可惜半途卡住了  :(

2017校招信息每日汇总(更新至8.4)

2017校招信息每日汇总(更新至8.4) 2016-07-25 18:24:05 校招攻略 【想获取内推方式请在APP客户端评论区留邮箱,我们会邮件联系你】 U料内...
  • samjustin1
  • samjustin1
  • 2016年08月04日 20:57
  • 3537

微软面试题:3,3,8,8,四个数字任意加减乘除使之最后等于24的编程解决方法

微软面试题:3,3,8,8,四个数字任意加减乘除使之最后等于24的公式 四个数字,四中操作方式,括号的取舍。。 空间复杂度:4!*A(4,3)*C(8) = 12288次,差不多就计算完了。 用j...
  • ab1233369ab
  • ab1233369ab
  • 2013年07月18日 23:40
  • 1087

java 数字时间年月日等 格式化format 输出

代码如下: 数字常用类型%s %d 等,如下 public static void main(String[] args) { String str=null; str=S...
  • nx188
  • nx188
  • 2016年05月24日 16:16
  • 1153

2014微博汽车白皮书 2014年8月24日 pdf

  • 2014年10月17日 11:30
  • 4.38MB
  • 下载

2012年8月24日学习笔记---程序员面试宝典--循环、递归和概率

程序员面试宝典之输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146 #include #include #include ...
  • chenyu964877814
  • chenyu964877814
  • 2012年08月23日 22:14
  • 887

2013年8月24日、继承|final关键字|

/* 子父类中的构造函数的特点。 在子类构造对象时,发现,访问子类构造函数时,父类也运行了。 为什么呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句。 super(); ...
  • wangzhenzhou6
  • wangzhenzhou6
  • 2013年08月24日 21:50
  • 338

雅加达出差(8月24日到25日)

雅加达出差 新加坡飞雅加达航班 汇率 交通和酒店 吃 链接雅加达出差上周去雅加达出差两天(8月24日到25日),拜访了两个客户,行程不紧不慢,再一次体会了一下雅加达糟糕的交通。新加坡飞雅加达航班乘坐廉...
  • scruffybear
  • scruffybear
  • 2016年08月31日 10:54
  • 436

(HTML部分)特供.Net基础全套视频教程2014版(第十八天)(更新于2015年10月24日02:23:36)

html 不区分大小写     空格标签   如:莫使金樽     空对月。 代表诗句间有五个空格     标题标签 :#=1~6 我是标题 ...
  • juliantem
  • juliantem
  • 2015年08月22日 21:38
  • 1076

官方VB.NET的例子 send E-mail

  • 2012年09月10日 18:25
  • 147KB
  • 下载

局域网内的消息发送器Net Send

  • 2006年02月23日 09:05
  • 178KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:8月24日,,终于有了net send
举报原因:
原因补充:

(最多只允许输入30个字)