怎样给局域网中的机子发短信?

pecker 2005-03-09 03:07:23
windows2000在命令行中可以写:
net send xxx.xxx.xxx.xxx(ip地址) 'hello'
这样来发送短消息.
那么有没有这个功能的API函数呢?或者说delphi中有没有这个功能的函数?
如果没有,是不是实现起来很麻烦?
...全文
136 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2005-03-09
  • 打赏
  • 举报
回复
unit Dummy;

interface
function NetSend(Dest, Source, Msg: string) : Longint;
const
NERR_Success=0;
NERR_BASE =2100;
NERR_NameNotFound =(NERR_BASE+173);
NERR_NetworkError =(NERR_BASE+36);
{
NERR_Success:caption:='NERR_Success';
ERROR_ACCESS_DENIED: ShowMessage('The user does not have access to the requested information.');
ERROR_INVALID_PARAMETER : ShowMessage('The specified parameter is invalid.');
ERROR_NOT_SUPPORTED : ShowMessage('This network request is not supported.');
NERR_NameNotFound : ShowMessage('The user name could not be found.');
NERR_NetworkError : ShowMessage('A general failure occurred in the network hardware.');
}
implementation
uses
windows;
function NetSend(Dest, Source, Msg: string) : Longint; overload;
type
TNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar;
Buf: PWideChar; buflen: Cardinal) : Longint; stdcall;
var
NetMessageBufferSend: TNetMessageBufferSendFunction;
SourceWideChar: PWideChar;
DestWideChar: PWideChar;
MessagetextWideChar: PWideChar;
Handle: THandle;
begin { NetSend }
Handle := LoadLibrary('NETAPI32.DLL');
if Handle=0 then
begin
Result := GetLastError;
Exit;
end; { Handle=0 }
@NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');
if @NetMessageBufferSend=nil then
begin
Result := GetLastError;
Exit;
end; { @NetMessageBufferSend=nil }
MessagetextWideChar := nil;
SourceWideChar := nil;
DestWideChar := nil;

try
GetMem(MessagetextWideChar, Length(Msg)*SizeOf(WideChar)+
1);
GetMem(DestWideChar, 20*SizeOf(WideChar)+1);
StringToWideChar(Msg, MessagetextWideChar, Length(Msg)*SizeOf(WideChar)+
1);
StringToWideChar(Dest, DestWideChar, 20*SizeOf(WideChar)+
1);
if Source='' then
Result := NetMessageBufferSend(nil, DestWideChar, nil, MessagetextWideChar,
Length(Msg)*SizeOf(WideChar)+
1)
else
begin
GetMem(SourceWideChar, 20*SizeOf(WideChar)+1);
StringToWideChar(Source, SourceWideChar, 20*SizeOf(WideChar)+
1);
Result := NetMessageBufferSend(nil, DestWideChar, SourceWideChar,
MessagetextWideChar, Length(Msg)*SizeOf(WideChar)
+1);
FreeMem(SourceWideChar);
end; { not (Source='') }

finally
FreeMem(MessagetextWideChar);
FreeLibrary(Handle);
end; { try }
end; { NetSend }

function NetSend(Dest, Msg: string) : Longint; overload;
begin { NetSend }
Result := NetSend(Dest, '', Msg);
end; { NetSend }

function NetSend(Msg: string) : Longint; overload;
begin { NetSend }
Result := NetSend('', '', Msg);
end; { NetSend }

//begin
// NetSend('exchage', 'Hello, Mike');
end.
seav 2005-03-09
  • 打赏
  • 举报
回复
用WinExec()来调用net send
henryluo 2005-03-09
  • 打赏
  • 举报
回复
可不要以用delphi调用命令行net send ......呢
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧