Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.10;
Скачать: CL | DM;

Вниз

Вопрос по отправке сообщения   Найти похожие ветки 

 
Guzz ©   (2003-04-23 19:50) [0]

Здравствуйте Мастера! Как отправить сообщение (Memo1) по локальной сети адресату (Edit1)?


 
Fixxxer ©   (2003-04-23 23:31) [1]

А ты сам пробовал чего?


 
Guzz ©   (2003-04-25 10:01) [2]

Я пробовал, ShellExecute и ниче не получается (всмысле командой net send имя сообщение), как можно еще попробовать?


 
Fixxxer ©   (2003-04-26 01:50) [3]

...ну я тогда не знаю...


 
Snap ©   (2003-04-26 17:17) [4]

>>>Guzz © (23.04.03 19:50)
уточни вопрос


 
Guzz ©   (2003-04-26 21:08) [5]

>>>Snap © (26.04.03 17:17) уточни вопрос

Уточняю: Требуется отправить сообщение из своей проги для требуемого адресата(либо весь домен) в сети (стандартная сеть MicroSoft) на 98 тачках это в WinPopup или стандартный обработчик событий в XP или на NT-системах.
Я пробую net send имя сообщение - не проходит (может что и не так делаю конечно), но всетаки есть какаято стандартная команда для отправки сообщений по сети из Дельфей (либо ее заменяющая процедура)?


 
Shurik   (2003-04-27 03:42) [6]

Попробуй это:
type
TNetMessageBufferSend = function (ServerName, MsgName, FromName: PWideChar;
Buff: Pointer; BufLen: DWord): Word; stdcall;

var
NetMessageBufferSend: TNetMessageBufferSend;
HLib: HModule;
PWCHost, PWCMsg: PWideChar;

function NetSend (Host: String; Msg: String): String;
var
Error: Word;
begin
Error:=0;
Result:="";
@NetMessageBufferSend:=nil;
HLib:=LoadLibrary ("netapi32.dll");
if HLib <> 0 then
begin
@NetMessageBufferSend:=GetProcAddress (HLib, "NetMessageBufferSend");
if @NetMessageBufferSend <> nil then
begin
try
GetMem (PWCHost, 2*Length (Host)+2);
GetMem (PWCMsg, 2*Length (Msg)+2);
StringToWideChar (Host, PWCHost, Length (Host)+2);
StringToWideChar (Msg, PWCMsg, Length (Msg)+2);
Error:=NetMessageBufferSend (nil, PWCHost, nil, PWCMsg, 2*Length (Msg));
finally
FreeMem (PWCHost);
FreeMem (PWCMsg);
if Error <> 0 then
Result:="Error calling NetMessageBufferSend";
end;
end
else
Result:="Error while loading NetApi32.dll";
FreeLibrary (HLib);
end
else
Result:="Error while loading NetApi32.dll: "+WindowsError (GetLastError);
end;

function OpenMailSlot (const Server, Slot: String): THandle;
var
FullSlot: String;
begin
FullSlot:="\\"+Server+"\mailslot\"+Slot;
Result:=CreateFile (PChar (FullSlot), GENERIC_WRITE, FILE_SHARE_READ, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
end;

function SendBufToMailSlot (const Server, Slot: String; Data: PChar; Length:
Integer): Boolean;
var
hToSlot: THandle;
BytesWritten: DWORD;
begin
Result:=False;
hToSlot:=OpenMailSlot (Server, Slot);
if hToSlot = INVALID_HANDLE_VALUE then
Exit;
try
BytesWritten:=0;
if (not WriteFile (hToSlot, Pointer (Data)^, Length, BytesWritten, nil)) or
(BytesWritten <> Length) then
Exit;
Result:=True;
finally
CloseHandle (hToSlot);
end;
end;

function SendToWinpopup (Server, Reciever, Sender, Msg: String): Boolean;
var
S: String;

const
wpSlot = "messngr";

begin
CharToOEM (PChar (Server), PChar (Server));
CharToOEM (PChar (Sender), PChar (Sender));
CharToOEM (PChar (Reciever), PChar (Reciever));
CharToOEM (PChar (Msg), PChar (Msg));
S:=Sender+#0+Reciever+#0+Msg;
Result:=SendBufToMailSlot (Server, wpSlot, PChar(S), Length(S));
end;

...
if WinNT then
NetSend (edDest.Text, mmMessage.Text)
else
SendToWinpopup (edDest.Text, edDest.Text, "", mmMessage.Text);
...


 
Guzz ©   (2003-04-29 19:34) [7]

>>>> Shurik (27.04.03 03:42)
Пример хороший, но что-то не могу с ним разобраться...
Вот на это матерился компирятор - type
TNetMessageBufferSend = function (ServerName, MsgName, FromName: PWideChar;
Buff: Pointer; BufLen: DWord): Word; stdcall;
но я исправил на function TNetMessageBufferSend (.......
думаю это просто была опечатка...
далее матерится на - var
NetMessageBufferSend: TNetMessageBufferSend;
что типа не описана gbitn - Undeclared identifier: "TNetMessageBufferSend"
затем на вот это - @NetMessageBufferSend:=nil; пишет - Left side cannot be assigned to
затем тоже самое на - @NetMessageBufferSend:=GetProcAddress (HLib, "NetMessageBufferSend");
затем на это - Result:="Error while loading NetApi32.dll: "+WindowsError (GetLastError); говорит - Undeclared identifier: "WindowsError"
вот вобщем почти все ошибки... может нужно какой-нить модуль подключить, чтобы он понял все это?
вобщем пока ничего не получается...


 
Illusion ©   (2003-04-29 23:50) [8]

2Guzz...
ноу коментс, как говорится... :)
TNetMessageBufferSend = function (ServerName, MsgName, FromName: PWideChar; Buff: Pointer; BufLen: DWord): Word; stdcall;
пусть я в дельфих уже лох, но должно быть понятно, что человек щадают не функцию, а тип функции... НЕ САМУ ФУНКЦИЮ! Приглядись в код...

var
NetMessageBufferSend: TNetMessageBufferSend;
...
@NetMessageBufferSend:=nil;
HLib:=LoadLibrary ("netapi32.dll");
if HLib <> 0 then
begin
@NetMessageBufferSend:=GetProcAddress (HLib, "NetMessageBufferSend");
...
даже МНЕ понятно, что человек грузит библиотеку, ищет функцию ит назначает её! ОН НЕ ПИШЕТ ЕЁ, А ЭКСПОРТИРУЕТ! И после тех изменений, что ты в нёс, ты хочешь чтобы всё работало? Почитай внимателее хелп по type-у... поищи декларирование функций...


 
Абармот   (2003-05-02 14:11) [9]

еще можно поглядеть вот здесь:
http://dmess.netz.ru/winpopup/ondelphi.htm

И не париться с загрузкой всяких там dll и определением системы.


 
Guzz ©   (2003-05-03 18:38) [10]

Illusion © (29.04.03 23:50) > уменя хелп не русский....

Абармот (02.05.03 14:11) > огромное пасибо!!! это мне и нужно!!!


 
cfG   (2003-05-04 20:29) [11]

Ну вообщем то можно сделать все намного проще!
Можно создать батник с кодом:

:ONEMORE
net send 192.168.0.1 FUCK OFF !
GOTO ONEMORE

и запустить его!




Страницы: 1 вся ветка

Текущий архив: 2003.07.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
14-31396
Dmitriy O.
2003-06-20 09:19
2003.07.10
Пиво мастера Delphi


14-31493
leonidus
2003-06-07 13:40
2003.07.10
Запуск моей программы из контекстного меню IE, как в ReGet`е


14-31482
Mike B.
2003-06-24 14:46
2003.07.10
Суровые армейские будни


1-31333
Елена
2003-06-26 17:59
2003.07.10
Вопрос по компоненту TMemo


14-31446
Феликс
2003-06-22 22:40
2003.07.10
Егор Поттер и Бойцовский клуб