L LGS Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-05 #1 我编了一个用来发送信使的软件,但发送到对方的计算机屏幕上显示发送者是我的计算机名,我想实现自定义签名的功能。( 我试了用更改计算机名的方法,但每次要重新启动计算机后才能行!)
G gear1023 Unregistered / Unconfirmed GUEST, unregistred user! 2003-11-17 #2 用函数,即可完成; 给你个程序看一下是否符合要求: http://www.bhgz.com/download/NetMessager.zip
H Highpeak Unregistered / Unconfirmed GUEST, unregistred user! 2003-12-18 #3 {================================================================= 功 能 : 向指定的机器发送桌面消息。 参 数 : 显示给用户的名称,指定机器的名称,发送的消息。 作者: Highpeak 版 本 : 1.0 2003/9/3/ 10:00 其他说明:通过创建邮件槽的方式向其他机器发送桌面消息。 =================================================================} procedure SendNetMessage(YourName, ComputerName, MessageStr: String); Var Rc: LongBool; MsHandle: Longint; MsgText: String; BytesWritten: Cardinal; MailSlotName: String; begin MailSlotName := '//' + ComputerName + '/mailslot/messngr'; MsgText := YourName + Chr(0) + ComputerName + Chr(0) + MessageStr + Chr(0); MsHandle := CreateFile(PChar(MailSlotName), GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, $FFFFFFFF); if MsHandle = INVALID_HANDLE_VALUE then RaiseLastWin32Error; RC := WriteFile(MsHandle, Pointer(MsgText)^, Length(MsgText), BytesWritten, 0); if not Rc then RaiseLastWin32Error; Rc := CloseHandle(MsHandle); end;
{================================================================= 功 能 : 向指定的机器发送桌面消息。 参 数 : 显示给用户的名称,指定机器的名称,发送的消息。 作者: Highpeak 版 本 : 1.0 2003/9/3/ 10:00 其他说明:通过创建邮件槽的方式向其他机器发送桌面消息。 =================================================================} procedure SendNetMessage(YourName, ComputerName, MessageStr: String); Var Rc: LongBool; MsHandle: Longint; MsgText: String; BytesWritten: Cardinal; MailSlotName: String; begin MailSlotName := '//' + ComputerName + '/mailslot/messngr'; MsgText := YourName + Chr(0) + ComputerName + Chr(0) + MessageStr + Chr(0); MsHandle := CreateFile(PChar(MailSlotName), GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, $FFFFFFFF); if MsHandle = INVALID_HANDLE_VALUE then RaiseLastWin32Error; RC := WriteFile(MsHandle, Pointer(MsgText)^, Length(MsgText), BytesWritten, 0); if not Rc then RaiseLastWin32Error; Rc := CloseHandle(MsHandle); end;
J jiafei528 Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-09 #4 to Highpeak, 你好,我按你的方法做了,行是行,可信息的长度不够呀,它自动截了后边的,还请指教?
H Highpeak Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-09 #6 那你改一下函数,分割一下长字符串,多调用几次WriteFile。 我没有试过,应该可以吧。