Отправляет сообщение по локальной сети (как команда Net Send)

Советы » Сеть » Отправляет сообщение по локальной сети (как команда Net Send)

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Отправляет сообщение по локальной сети (как команда Net Send)

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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com