Форум: "Сети";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизNet send Найти похожие ветки
← →
mp © (2004-08-20 16:42) [0]Как возможно отловить, что пришло сообщение по службе "net send", как его обработать и дальше послать
← →
panov © (2004-08-20 17:12) [1]http://www.delphimaster.ru/cgi-bin/forum.pl?n=4&search=net+send
← →
Klopan © (2004-08-20 21:25) [2]
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;
автор: Num Lock
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c