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;
}
//---------------------------------------------------------
|
|
|
|