C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Служба сообщений
RebOOTer
Отправлено: 18.10.2003, 17:57


Не зарегистрирован







Народ, кто знает какой API'шкой утила net пользуется для отправки сообщения
//net send 127.0.0.1 Hello world

Подскажите плз!




__________________________________
Dr.Phoenix
Отправлено: 18.10.2003, 19:29


Дежурный стрелочник

Группа: Участник
Сообщений: 48



на этот вопрос мне кто то ответил...
CODE

bool SendNetMessage(AnsiString Komp, AnsiString Mes)
{
AnsiString From;
/*char CompName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size=MAX_COMPUTERNAME_LENGTH + 1;
//Откуда
if(!GetComputerName(CompName,&size))return false;
From=CompName;
 */
From=Form1->Edit2->Text;

if(Mes.Length()==0)return false;
HANDLE hSlot = CreateFile(("\\"+Komp+"\mailslot\messngr").c_str(),
GENERIC_WRITE, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if (hSlot == INVALID_HANDLE_VALUE)return false;
DWORD cb=0;
BOOL ret;
char *buf=new char[From.Length()+1+Komp.Length()+1+Mes.Length()+1+255];
//1. From
memcpy(&buf[cb],From.c_str(),From.Length()+1);
cb +=From.Length()+1; //+1 на конце должен быть 0
//2. To
memcpy(&buf[cb],Komp.c_str(),Komp.Length()+1);
cb +=Komp.Length()+1;
//3. Само сообщение
char cur[10]="<!--POST BOX-->",of[10]="<!--POST BOX-->";int radix=0;
itoa(COUNT,cur,4);
Mes+=" ";
memcpy(&buf[cb],Mes.c_str(),Mes.Length()+1);
cb +=Mes.Length()+1;

//ConvertToDos
CharToOemBuff(buf,buf,cb);

ret=WriteFile(hSlot, buf,cb, &cb, NULL);
CloseHandle(hSlot);
delete[] buf;
if(!ret) return false;
return true;
}
//---------------------------------------------------------

Вернуться в Вопросы программирования в C++Builder