18.2.5 在局域网中发送短消息
Windows系统提供有信使服务,用户可以通过该服务向局域网中的用户发送信息。为了使用Windows信使服务,需要使用netapi函数NetMessageBufferSend。为了使用该函数,需要从netapi32.dll动态库中导入该函数。
下面根据一个例子来介绍如何在局域网中发送短消息。具体操作步骤如下。
ch1805实例位置:mr\18\sl\05
(1)新建一个基于对话框的应用程序,向对话框中添加按钮、编辑框、静态文本等控件,如图18.9所示。
(2)处理“发送”按钮的单击事件,向指定计算机发送信息。
typedef UINT ( __stdcall *funNetMessageBufferSend) (LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,DWORD); void CSendMsgDlg::OnSend() { CString name; m_Merchine.GetWindowText(name);
if (name.IsEmpty()) { MessageBox("请输出对方名称"); return; } //加载网络库 HINSTANCE hInstance = LoadLibrary("netapi32.dll"); //获取函数入口地址 funNetMessageBufferSend NetMessageBufferSend = (funNetMessageBufferSend) GetProcAddress(hInstance,"NetMessageBufferSend"); if (NetMessageBufferSend) { CString content; m_Content.GetWindowText(content); CString localname; localname.GetBufferSetLength(MAX_PATH); gethostname(localname.GetBuffer(0), MAX_PATH); NetMessageBufferSend(NULL,name.AllocSysString(),NULL ,_T(content.AllocSysString()),content.GetLength()*2); content.ReleaseBuffer(); localname.ReleaseBuffer(); } FreeLibrary(hInstance); }
|
(3)运行程序,效果如图18.10所示。
图18.9 对话框设计窗口
图18.10 在局域网中发送短消息
【责任编辑:
阚书 TEL:(010)68476606】