![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Net Send 172.16.120.3 Privet ! Kak Sam? [D6, WinXP]
Прямая извилина © (2005-08-15 13:14:00)Добрый день ! Помогите пожалуйста с вопросом. У меня на форме
одна кнопка и 2 Edit-а. В первый едит нужно ввести сообщение
а на второй IP адрес. Как при нажатии кнопки сообщение отправить по IP адресу, путем Net send-а. Помогите тупому студенту плииз. Заранее спасибо.
Kazakh (2005-08-15 13:56:00) [1]Лови.....
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;
Андрей Жук (2005-08-15 13:33:00) [2]Если для очень прямых извилин, то
WinExec32('net send 172.16.120.3 Privet !',0);
Project JCL
Прямая извилина (2005-08-15 13:21:00) [3]Дайте ответ если не трудно, плиз.
Digitman (2005-08-15 13:15:00) [4]
> Прямая извилина
> Помогите тупому
как это сочетается ?)