![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Отправляет сообщение по локальной сети (как команда Net Send)Delphi , Интернет и Сети , Сеть
Автор: Num Lock { **** UBPFD *********** by delphibase.endimus.com **** >> function NetSend(const sTo, sMessage: string): Boolean; - Отправляет сообщение по локальной сети (делает тоже что и Net Send) sTo - Кому (Имя пользователя, рабочей группы или компьютера). Можно использовать '*', чтобы отправить всем. sMessage - Text сообщения. Зависимости: Windows, ActiweX Автор: Num Lock Copyright: Num Lock Дата: 13 марта 2003 г. ***************************************************** } function NetSend(const sTo, sMessage: string): Boolean; type PNetMessageBufferSend = ^TNetMessageBufferSend; TNetMessageBufferSend = function( servername: PWideChar; msgname: PWideChar; fromname: PWideChar; buf: PBYTE; buflen: DWORD ): Integer; stdcall; var wMessage, wTo: PWideChar; i, hLib: Integer; NetMessageBufferSend: TNetMessageBufferSend; begin Result := False; hLib := LoadLibrary('NetApi32.dll'); if hlib > 0 then try @NetMessageBufferSend := GetProcAddress(hLib, 'NetMessageBufferSend'); if @NetMessageBufferSend <> nil then begin wMessage := CoTaskMemAlloc((Length(sMessage) + 1) * sizeof(WideChar)); try wTo := CoTaskMemAlloc((Length(sTo) + 1) * sizeof(WideChar)); try StringToWideChar(sMessage, wMessage, Length(sMessage) + 1); StringToWideChar(sTo, wTo, Length(sTo) + 1); i := NetMessageBufferSend(nil, wTo, nil, PBYTE(wMessage), (Length(sMessage) + 1) * sizeof(WideChar)); Result := i = ERROR_SUCCESS; if not Result then MessageBox(GetForegroundWindow, 'Сообщение не отправлено.', nil, $1010); finally CoTaskMemFree(wTo); end; finally CoTaskMemFree(wMessage); end; end else MessageBox(GetForegroundWindow, 'Функция NetMessageBufferSend не обнаружена.', nil, $1010); finally FreeLibrary(hLib); end else MessageBox(GetForegroundWindow, 'NetApi32.dll не загружена.', nil, $1010); end; Пример использования: procedure TForm1.NetSendBtnClick(Sender: PObj); begin if NetSend(combobox1.Text, Memo1.Text) then begin Memo1.Clear; MessageBox(Form.Handle, 'Отправка сообщения.', 'Сообщение отправлено', MB_ICONINFORMATION); end; end; Привет! Я перевёл текст о коде Delphi, который реализует функцию Вот подробный анализ кода:
Пример использования функции Обратите внимание, что этот код требует установки Windows и компонентов ActiveX на системе, и использует библиотеку NetAPI32.dll, которая предоставляет сетевые API. Функция NetSend позволяет отправлять сообщения по локальной сети, подобно команде Net Send. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |