用什么语句可以给局域网用户计算机发消息?(100)

  • 主题发起人 主题发起人 liupfhbhhx
  • 开始时间 开始时间
L

liupfhbhhx

Unregistered / Unconfirmed
GUEST, unregistred user!
用什么语句可以给局域网用户计算机发消息?
 
你可以用SOCKET通讯来传信息,到本机接收后再发消息。
 
楼主什么意思?如果你说要给局域网内部机器发消息,不需要客户机上面安装任何东西的话,好像需要windows信使服务,如果不开的话你是发不了的!如果你要做一个客户端,客户机安装后由服务器发送消息那样就简单了,楼上的完全可以!不过需要每个局域网内部客户机都需要安装客户端,而且需要起机运行!或者你也可以做成服务
 
很多XP系统是装SP2之前,messager服务是默认开启的。系统里有个命令net send
 
net start messengernet send……
 
POP就可以如果只是通信而已
 
地质灾害的是对的,加上Winexec(pchar('c:/windows/system32/net.exe send '+_ip+' +_msg),sw_hide);
 
net send 好像不行的哦 电脑的服务很多都关闭了 自己作个广播程序吧
 
我以代码为例,返回所有局域网内的IP地址procedure GetUserList(fServer:string;List:TStrings);Var NetResource : TNetResource; Buf : Pointer; Count,BufSize,Res : DWord; Ind : Integer; lphEnum : THandle; Temp : PNetResourceArr; s:string;begin //List.Clear; GetMem(Buf, 8192); //申请内存,用于获取工作组信息 try FillChar(NetResource, SizeOf(NetResource), 0); //初始化网络层次信息 NetResource.lpRemoteName := @fServer[1]; //指定工作组名称 NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER; //类型为服务器(工作组) NetResource.dwUsage := RESOURCEUSAGE_CONTAINER; NetResource.dwScope := RESOURCETYPE_DISK; //列举文件资源信息 Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum); if Res <> 0 then //执行失败 Exit; while True do begin Count := $FFFFFFFF; BufSize := 8192; Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize); //获取工作组信息 if Res = ERROR_NO_MORE_ITEMS then //资源列举完毕 Exit; if (Res <> 0) then //执行失败 Exit; Temp := PNetResourceArr(Buf); for Ind := 0 to Count - 1 do begin s:= Temp^.lpRemoteName+2; s:= Form1.HostToIP(s); if s <>'' then List.Add(s) ; Inc(Temp); //下一个计算名称 end; end; Res := WNetCloseEnum(lphEnum); //关闭列举 if Res <> 0 Then Raise Exception(Res); finally FreeMem(Buf); end; //forend;如果电脑多的话,速度很慢。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
875
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部