如何自定义信使发送者的姓名 ?(50分)

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

LGS

Unregistered / Unconfirmed
GUEST, unregistred user!
我编了一个用来发送信使的软件,但发送到对方的计算机屏幕上显示发送者是我的计算机名,我想实现自定义签名的功能。( 我试了用更改计算机名的方法,但每次要重新启动计算机后才能行!)
 
用函数,即可完成;
给你个程序看一下是否符合要求:
http://www.bhgz.com/download/NetMessager.zip
 
{=================================================================
功 能 : 向指定的机器发送桌面消息。
参 数 : 显示给用户的名称,指定机器的名称,发送的消息。
作者: 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;
 
to Highpeak,
你好,我按你的方法做了,行是行,可信息的长度不够呀,它自动截了后边的,还请指教?
 
是啊,怎么解决长度限制的问题啊?
 
那你改一下函数,分割一下长字符串,多调用几次WriteFile。
我没有试过,应该可以吧。
 
后退
顶部