关于局域网内发消息的问题...
不知道大家有没有用过NetSuper这个软件。(http://www.sea-soft.com/可以下载)
本人没有在此宣传的意思,他里面有个功能挺强的:使用者可以向局域网内的任何一个机器发消息,而对方在任何条件下(当然要开机喽)都会弹出一个优先级最高的msgbox来显示这条信息,并不需要运行任何client端程序。不知道他是怎么实现的。
感兴趣的朋友可以发表一下意见。
问题点数:100、回复次数:12Top
1 楼cangwu_lee(橙子)回复于 2002-10-15 16:42:38 得分 0
是Windows NT/2000 以上的操作系统的?
不会是Windows 9X的。Top
2 楼minajo21(大眼睛)回复于 2002-10-15 16:48:02 得分 0
是要NT结构的。Top
3 楼daichao1251712(SalaMan)回复于 2002-10-15 16:55:13 得分 0
我也想知道原理是什么啊
================================================================
horse has four leg
so water in sea
Top
4 楼WizardBear(飞猫_重起机器)回复于 2002-10-15 16:57:57 得分 100
双方得是2000或XP,
用的是window的信史服务,
看看这个帖子:
http://www.csdn.net/expert/topic/1075/1075726.xml?temp=.8750574Top
5 楼bamboo789(Bamboo)回复于 2002-10-15 17:11:13 得分 0
同意WizardBear(飞猫_重起机器),其实不要用什么软件,windows2000提供一的一个msg就可以做到上述的功能Top
6 楼minajo21(大眼睛)回复于 2002-10-15 17:40:30 得分 0
Private Declare Function NetMessageBufferSend Lib "NETAPI32.DLL" (Server As Any, yToName As Byte, yFromName As Any, yMsg As Byte, ByVal lSize As Long) As Long
这个函数中的Server应该给什么?Top
7 楼minajo21(大眼睛)回复于 2002-10-15 17:43:17 得分 0
感谢WizardBear提供的帖子。
Private Declare Function NetMessageBufferSend Lib "NETAPI32.DLL" (Server As Any, yToName As Byte, yFromName As Any, yMsg As Byte, ByVal lSize As Long) As Long
这个函数中的"Server"应该怎么给?关注。Top
8 楼qyyayong(小李飞刀)回复于 2002-10-15 18:00:33 得分 0
请问是用什么东东做的?
利用什么原理?
我关注Top
9 楼minajo21(大眼睛)回复于 2002-10-15 18:18:49 得分 0
不太清楚他用什么做的,不过根据WizardBear的推荐,我已经实现了。
代码如下:
Private Const NERR_Success As Long = 0&
Private Declare Function NetMessageBufferSend Lib "NETAPI32.DLL" (Server As Any, yToName As Byte, yFromName As Any, yMsg As Byte, ByVal lSize As Long) As Long
Private Declare Function GetComputerName Lib "Kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function Sendmsg(strTo As String, strFrom As String, strMessage As String) As Boolean
Dim bytTo() As Byte
Dim bytFrom() As Byte
Dim bytMsg() As Byte
Dim Name As String, Length As Long
Length = 255
Name = String(Length, 0)
GetComputerName Name, Length
Name = Left(Name, Length)
bytTo = strTo & vbNullChar
bytFrom = IIf(strFrom = "", Name, strFrom) & vbNullChar
bytMsg = strMessage & vbNullChar
Sendmsg = (NetMessageBufferSend(ByVal 0&, bytTo(0), bytFrom(0), bytMsg(0), UBound(bytMsg)) = NERR_Success)
End FunctionTop
10 楼maskzha(MaskZha)回复于 2002-10-15 18:21:39 得分 0
很简单的,只要网内操作系统均为WIN2k,用NET SEN 命令就可搞定。Top
11 楼maskzha(MaskZha)回复于 2002-10-15 18:24:07 得分 0
好象装了防火墙后,级别设高了一样发不了。Top
12 楼IsMe(海底捞针)回复于 2002-10-15 18:26:13 得分 0
net send /?Top
13 楼maskzha(MaskZha)回复于 2002-10-18 16:02:09 得分 0
net send "user ip or cpmputer name" "message"
eg: net send 192.168.0.1 "hello!"
Top




