一个用于局域网的消息发送程序,你可以用它在局域网内向同网的计算机发送消息.其原理就是使用了WindowsNT的netsend命令,程序中使用的Access保存发送信息的纪录. 最有意思的是,当你的朋友在热火朝天的打着星际的时候,你给他发个消息,嘿嘿 因为用的是NT的命令,所以本程序只能在基于NT的操作系统中使用,也就是不能在Windows98下使用. 由于是我的第一的Delphi程序,所以非常简单,包含源码,大家看了不要笑话我。
斑竹加:其实netsend这个dos命令,在Win32API中可以用NetMessageBufferSend()函数来实现,函数使用例子如下: -------------------------------------------------------------- unit Unit2;
interface
uses Classes, SysUtils;
type Tmsg4nt = class(TThread) private zmsgname,zfromname,zbuf:string; zres:integer; protected procedure Execute; override; public function NetMsgSend(msgname,fromname,buf:string):integer; end;
function NetMessageBufferSend(servername:PWideChar; msgname:PWideChar; fromname:PWideChar; buf: PWideChar; var buflen:integer):integer;cdecl;
implementation
function NetMessageBufferSend; external 'netapi32.dll' name 'NetMessageBufferSend';
function ToUnicode(str:string;dest:PWideChar):integer; var len:integer; begin StringToWideChar(str,dest,len); Result:=len; end;
{ Tmsg4nt }
procedure Tmsg4nt.Execute; const lname=64; lbuf=1024; var msgname_:array [0..lname-1] of WideChar; buf_:array [0..lbuf-1] of WideChar; buflen_,i:Integer; begin for i:=0 to lname-1 do msgname_[i]:=#0; ToUnicode(zmsgname,msgname_); for i:=0 to lbuf-1 do buf_[i]:=#0; ToUnicode(zbuf,buf_); zres:=NetMessageBufferSend(nil,msgname_,nil,@buf_,buflen_); end;
function Tmsg4nt.NetMsgSend(msgname, fromname, buf: string):integer; begin zmsgname:=msgname; zfromname:=fromname; zbuf:=buf; Execute; result:=zres; end;
end.
|