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

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

Как узнать принадлежит-ли компьютер к какому-либо домену?


needle ©   (2004-09-10 09:36:00) 

ась? важен сам факт принадлежности к домену, для определения возможности изменения некоторых настроек, в частности logontype в xp.


Игорь Шевченко   (2004-09-10 11:40:00) [1]

Могу еще порекомендовать поглядеть в

http://www.schevchenko.net.ru/SRC/EnumFunctions_60.zip

модуль hswinutils.pas


needle   (2004-09-10 11:30:00) [2]

если кому интересно - сваял модуль:

unit uNetApi;

interface
uses
 Windows,Classes;
 
function IsJoinedToDomain:Boolean;

implementation
type
NETSETUP_JOIN_STATUS=(NetSetupUnknownStatus,NetSetupUnjoined,NetSetupWorkgroupName,NetSetupDomainName);
const
netapi32 = 'netapi32.dll';
var
 NetAPI32Lib: THandle;
 NetGetJoinInformation: function(lpServer:PWideChar;var lpNameBuffer:PWideChar;var BufferType:NETSETUP_JOIN_STATUS):Integer;stdcall;
 NetApiBufferFree: function(Buffer:PWideChar):Integer;stdcall;

function LoadNetApi32Dll:Boolean;
begin
 Result:=false;
 try
   NetAPI32Lib := LoadLibrary(netapi32);
   if NetAPI32Lib > 0 then
   begin
     NetGetJoinInformation := GetProcAddress(NetAPI32Lib,'NetGetJoinInformation');
     NetApiBufferFree := GetProcAddress(NetAPI32Lib,'NetApiBufferFree');
     Result:=true;
   end;
 except
 end;
end;

procedure UnLoadNetApi32Dll;
begin
 if NetAPI32Lib>0 then
   FreeLibrary(NetAPI32Lib);
end;

function IsJoinedToDomain:Boolean;
var
buf:PWideChar;
buftype:NETSETUP_JOIN_STATUS;
begin
 Result:=false;
 if not LoadNetApi32Dll then
   exit;
 NetGetJoinInformation(nil,buf,buftype);
 if buftype=NetSetupDomainName then
   Result:=true;
 NetApiBufferFree(buf);
 UnLoadNetApi32Dll;
end;

end.


Игорь Шевченко   (2004-09-10 11:07:00) [3]

needle   (10.09.04 10:12) [3]

И не забыть при успешном вызове сделать NetApiBufferFree :)


needle   (2004-09-10 10:12:00) [4]

-> Игорь Шевченко
фенкс со мач. Именно то что нужно.
NET_API_STATUS NetGetJoinInformation(
 LPCWSTR lpServer,
 LPWSTR *lpNameBuffer,
 PNETSETUP_JOIN_STATUS BufferType
);
typedef enum _NETSETUP_JOIN_STATUS {

   NetSetupUnknownStatus = 0,
   NetSetupUnjoined,
   NetSetupWorkgroupName,
   NetSetupDomainName

} NETSETUP_JOIN_STATUS, *PNETSETUP_JOIN_STATUS;


Игорь Шевченко   (2004-09-10 09:59:00) [5]

NetGetJoinInformation ?


UNIVERSAL   (2004-09-10 09:47:00) [6]

Не это случаем GetComputerNameEx?


Наверх

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