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

 
Уважаемые мастера вот код, что не так ?
bacho_sun
Отправлено: 15.08.2005, 16:39


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

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



Вот достал код (Builder C++)

Откомпилировал ниже приведенный код,но он не выдает информацию о шарингах на обычном сервере 2000 и также не выдает скрытые шаринги..выдает лишь шаринги на удаленном — в локальной сети компьютере у которого XP
как изменить этот код так, чтобы можно было выводить шаринги как с XP так и 2000 ых компов + скрытые ?
Да чуть не забыл на 2000 Server и 2000 Proffesional не установленны никакие фаерволы и защиты вообще никакой, хотя шаринги присутствуют как скрытые так и не скрытые.
Домен отсутствует — обычная рабочая группа.

TStringList* EnumShares2 (char* Address)
{
#define max_res 256
NETRESOURCE NetRes, NetResources [max_res];
// LPHANDLE hEnum;
HANDLE hEnum;

unsigned long Count = 0xFFFFFFFF, Size = max_res * sizeof (NETRESOURCE);
int Err;
TStringList *RES = new TStringList;

NetRes.lpRemoteName = Address;
NetRes.lpLocalName = 0;
NetRes.lpComment = 0;
NetRes.lpProvider = 0;
Err = WNetOpenEnum (RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
RESOURCEUSAGE_CONNECTABLE, &NetRes, &hEnum);


if (Err != NO_ERROR)
{
RES->Add(AnsiString(Address) + ": error WNetOpenEnum");
return RES;
}

Err = WNetEnumResource (hEnum, &Count, NetResources, &Size);


if (Err != NO_ERROR)
RES->Add(AnsiString(Address) + ": error WNetEnumResource");
else
{
for (unsigned int i = 0; i < Count; i++)
{
RES->Add(NetResources[i].lpRemoteName);
Form1->ListBox1->Items->Add( NetResources[i].lpRemoteName);
}
}

WNetCloseEnum (hEnum);


return RES;
}



void __fastcall TForm1::Button2Click(TObject *Sender)
{
EnumShares2("\\\\RDB01");
}

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