Отправка сообщения
Как мне отправить сообщение на комп через NetSend???
unit Mess;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, dblookup, DB, ADODB, Menus;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
NetSendBtnClick: TButton;
ADOConnection1: TADOConnection;
ADOCommand1: TADOCommand;
DataSource1: TDataSource;
ADOTable1: TADOTable;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
ComboBox1: TComboBox;
Memo1: TMemo;
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure NetSendBtnClickClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Mess2, Mess3;
{$R *.dfm}
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.NetSendBtnClickClick(Sender: TObject);
begin
if NetSend(combobox1.Text, Memo1.Text) then begin
Memo1.Clear;
MessageBox(Form1.Handle, 'Отправка сообщения.', 'Сообщение отправлено', MB_ICONINFORMATION);
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form3.ShowModal;
end;
end.
ShellExecute(Handle, 'open', 'net.exe', PChar('send ' + combobox1.text + ' ' + memo1.Text), nil, SW_SHOWMINIMIZED);
Как сделать возможным отправку одного письма сразу нескольким компьютерам одновременно???
ShellExecute(Handle, 'open', 'net.exe', PChar('send ' + combobox1.text + ' ' + memo1.Text), nil, SW_SHOWMINIMIZED);
меняй combobox1.text и шли многим :)
а можно по подробней пожалуйста???