grebenyk |
Отправлено: 20.10.2006, 06:34 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 73
|
Дорогие друзья, сталкнулся с такой проблемой: есть сеть из двух компов ( winnt и winxp), необходимо послать сообщение с одного на другой , типа net send , хотя почиму-то в xp оно у меня не работает(net send home hi). Все это применяется в моей проге , которая смотрит на одном компе наличие определенных файлов, а потом в случае отсутствия должен высветить на другом сообщение. А писать проги типа сервер клиент не хочется. Как обойтись одной прогой |
|
AVC |
Отправлено: 20.10.2006, 08:09 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
CODE |
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Послать сообщение по локальной сети
//---------------------------------------------------------------------------
#include <lm.h>
PACKAGE bool __fastcall AxSendNetMessage (const AnsiString &pTo_Name
,const AnsiString &pMessage
)
{
if (pTo_Name.Trim().IsEmpty()) return false;
if (pMessage.Trim().IsEmpty()) return false;
char buf[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(buf) — 1;
if (!GetComputerName(buf, &size)) return false;
WideString From_Name (buf );
WideString To_Name (pTo_Name);
WideString Message (pMessage);
// Не пробивают блокировку (все)
NetMessageBufferSend
(NULL // LPTSTR servername,
,To_Name // LPTSTR msgname (toname),
,From_Name // LPTSTR fromname,
,(unsigned char*)Message.c_bstr() // LPBYTE buf,
,Message.Length()*2 // DWORD buflen
);
/*
// Дублируются (многократно)
AnsiString str ="\\" + AnsiString(To_Name) + "\mailslot\messngr";
HANDLE hSlot = CreateFile(str.c_str(),
GENERIC_WRITE, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hSlot == INVALID_HANDLE_VALUE) ShowMessage("Can't open file");
else
{ char buf[] = "AVC<!--POST BOX-->TATYANA<!--POST BOX--> 222 asdfфыва<!--POST BOX-->";
DWORD cb = sizeof(buf);
CharToOemBuff(buf,buf,cb);
WriteFile(hSlot, buf, cb, &cb, NULL);
CloseHandle(hSlot);
}
*/
return true;
}
| |
|
Konstantine |
Отправлено: 20.10.2006, 10:07 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
http://rxlib.ru/forums/index.php?act=ST&f=...b1a65775a2c1f81
|
|
Gedeon |
Отправлено: 20.10.2006, 12:27 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Давно известна проблема когда на нт не работает нетсенд, тут дело не в программе.
|
|
|