Bugün bilgisayarıma bir program kurmak istediğimde: bilgisayarım bir domain sunucuya bağlı çalıştığı için kurulumun yapılamayacağına dair uyarı çıktı. Evet, iş yerimizde domain server var ve bilgisayarlar buna bağlı çalışıyor. Ben de "bu nasıl tespit edebiliriz" diye merak ettim ve araştırdım:
netapi32.dll bize bu konuda yardımcı oluyormuş. Bunun içindeki
Kullanımı:
function NetGetJoinInformation(lpServer: PWideChar; out lpNameBuffer: PWideChar;
*out BufferType: Integer): Cardinal; stdcall; external 'netapi32.dll';
function NetApiBufferFree(Buffer: Pointer): DWORD; stdcall; external 'netapi32.dll';
var
*NetBIOSName, durum: String;
*P: PWideChar;
*jStatus: Integer;
begin
*NetGetJoinInformation(nil, P, jStatus);
*NetBIOSName := P;
*NetApiBufferFree(P);
*case jStatus of
* *0: durum := 'Bilinmeyen';
* *1: durum := 'Üye değil';
* *2: durum := 'Workgroup üyesi';
* *3: durum := 'Domain Üyesi';
*end;
*ShowMessage(Format('%s - %s', [NetBIOSName, durum]));
Aynı kontrol
netapi32.dll bize bu konuda yardımcı oluyormuş. Bunun içindeki
Misafirler için gizlenen link, görmek için
Giriş yap veya üye ol.
fonksiyonu bilgisayarın bir domain'e yada workgroup'a bağlı olup olmadığını bize söylüyor. MSDN dokümanında da anlaşılacağı gibi fonksiyondan bize 2 değer dönüyor: lpNameBuffer ve *BufferType. *İlki eğer bilgisayar domain yada workgroup'a dahil ise "NetBIOS name"i, ikincisi ise "join status"u yani domain/wokgroup'a bağlı olup olmadığını gösteren parametre.*Kullanımı:
function NetGetJoinInformation(lpServer: PWideChar; out lpNameBuffer: PWideChar;
*out BufferType: Integer): Cardinal; stdcall; external 'netapi32.dll';
function NetApiBufferFree(Buffer: Pointer): DWORD; stdcall; external 'netapi32.dll';
var
*NetBIOSName, durum: String;
*P: PWideChar;
*jStatus: Integer;
begin
*NetGetJoinInformation(nil, P, jStatus);
*NetBIOSName := P;
*NetApiBufferFree(P);
*case jStatus of
* *0: durum := 'Bilinmeyen';
* *1: durum := 'Üye değil';
* *2: durum := 'Workgroup üyesi';
* *3: durum := 'Domain Üyesi';
*end;
*ShowMessage(Format('%s - %s', [NetBIOSName, durum]));
Aynı kontrol
Misafirler için gizlenen link, görmek için
Giriş yap veya üye ol.
ile de yapılabilir. Bu durumda
Misafirler için gizlenen link, görmek için
Giriş yap veya üye ol.
sınıfının DomainRole değeri kontrol edilmeli:
Misafirler için gizlenen link, görmek için
Giriş yap veya üye ol.