Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

опять таки - Как узнать рабочую группу компьютера? НО....... [D7, WinXP]


RAshka ©   (2004-06-06 20:43:00) 

Проблемма:
 нужно определить список рабочих групп, по IP'кам.

На ссылках...
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1085154549&n=4
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1083750681&n=4
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1082989601&n=4
... я уже был. То что там есть - помогло... НО

... возникла другая проблемма.

Алгоритм:
Изначально сканируется сеть - определям 22 активных компа.
Дальше определяется раб.группы:
* для 17 компов рабочие группы определяются правильно (тут проблем нет :)
* для 4 компов опеределяет раб.группу как "Unknown" (проблемма)
* на 1 компе, не проходит функция "WNetGetProviderName", соответственно до определения раб.группы и не доходит (тоже проблемма)

В чём может быть проблемма и как её решить ?

п.с.другие же программы верно определяют рабочие группы для всех компьютеров


RAshka   (2004-06-13 01:20:00) [1]

Неужели всё?
Плиз - помогите...


RAshka   (2004-06-08 10:23:00) [2]

вот код - он взять из:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1083750681&n=4


function raTThread.process_DetectWorkgroup(strIP:String):String;
var
  BufTemp     : PChar;
  BufSize     : DWORD;
  Buf         : Array[1..10] of TNetResource;
  WorkgroupRS : TNetResource;
  StrCopy     : String;
begin
  Result:='';

  FillChar(WorkgroupRS,SizeOf(WorkgroupRS),0);

  BufSize:=100;
  GetMem(BufTemp,BufSize);

  try
     if WNetGetProviderName(WNNC_NET_LANMAN, BufTemp, BufSize)=NO_ERROR then
     begin
        StrCopy:=BufTemp;
        WorkgroupRS.dwType := RESOURCETYPE_ANY;
        WorkgroupRS.lpRemoteName:=PChar('\\'+strIP);
        WorkgroupRS.lpProvider:=PChar(StrCopy);
     end;
  finally
     FreeMem(BufTemp);
  end;

  BufSize:=100;
  if WNetGetResourceParent(@WorkgroupRS, @Buf, BufSize)=NO_ERROR then
  begin
     Result:=Buf[1].lpRemoteName;
  end;
end;


Rouse_   (2004-06-08 08:07:00) [3]

Покажи код, нужно его посмотреть...


Наверх

Титульная страница Поиск, карта сайта Написать письмо