Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

net send


banderas ©   (2004-07-18 19:17:00) 

Как послать сообщение net send'ом ?


Депрессирующий Человек   (2004-07-19 11:34:00) [1]

Вот примерный код:

function NetMessageBufferSend (servername, msgname, fromname, buf: LPWSTR; buflen: Longint): Longint; stdcall; external 'NetApi32.dll';

var sTo, sFrom, sMsg: WideString;

if NetMessageBufferSend(nil, PWideChar(sTo), PWideChar(sFrom), PWideChar(sMsg), (Length(sMsg)+1)*SizeOf(WideChar)) = 0
  then MessageBox(0, 'Сообщение успешно доставлено.', 'Netsend', MB_ICONINFORMATION)
  else MessageBox(0, 'Ошибка', 'Netsend', MB_ICONERROR);


DeadMeat   (2004-07-18 21:08:00) [2]


> Sending('Привет', 'COMP_9')

ИМХО, лучше либо заголовок переделать или в вызове местами поменять параметры...

---
...Death Is Only The Begining...


SashOK   (2004-07-18 19:33:00) [3]

uses ActiveX;

function Sending(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,
       'ErroR', nil, $1010);
 finally
   FreeLibrary(hLib);
 end
 else
   MessageBox(GetForegroundWindow, 'Error', nil, $1010);
end;

**********
Sending('Привет', 'COMP_9')


Наверх

Титульная страница Поиск, карта сайта Написать письмо