![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать принадлежит-ли компьютер к какому-либо домену?
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?