Çalışma grubu adını almak. [ÇÖZÜLDÜ]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Çalışma grubu adını almak. [ÇÖZÜLDÜ]

Mesaj gönderen ByDeniS »

Merhaba arkadaşlar öncelikle cevapler için teşekkür ederim.

sabahtan beri araştırmama rağmen düzgün birşey bulamadım tıkandım kaldım. Lütfen bilgisi olan yardımcı olurmu.

Bir ağ üzerindeki bilgisayar ları bulabiliyoruz bunların ip numarasını ağ adını vs vs bulabiliyoruz. Ama bu bilgisayarların yada kendi bilgisayarlarımızın çalışma grubunu bulamıyorum. Workgrup'u nasıl öğrenebilirim. ?

Hayırlı ramazanlar.
En son ByDeniS tarafından 18 Ağu 2010 01:39 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Çalışma grubu adını almak.

Mesaj gönderen SimaWB »

Denemedim ama burada anlatılmış
There's no place like 127.0.0.1
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Çalışma grubu adını almak.

Mesaj gönderen ByDeniS »

SimaWB yazdı:Denemedim ama burada anlatılmış
Teşekkür ederim ama

Kod: Tümünü seç

       EC := Win95_NetWkstaUserGetInfo(nil, 1, Pointer(WS95));
   if hNETAPI <> 0 then
Şu iki farklı satırda hat agösteriyor ve çözemedim bunun sebebini.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: Çalışma grubu adını almak.

Mesaj gönderen Battosai »

Indy TCP client ile öğrenilebilirmiş...

Kod: Tümünü seç

label1.caption := idTcpClient1.LocalName;
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Çalışma grubu adını almak.

Mesaj gönderen ByDeniS »

Battosai yazdı:Indy TCP client ile öğrenilebilirmiş...

Kod: Tümünü seç

label1.caption := idTcpClient1.LocalName;
Hayır öğrenilemez, IdTcpClient ile sadece bilgisayarınızın adını öğrenebilirsiniz. LocalAddr ilede ip adresini öğrenebilirsiniz. Ama ağ çalışma grubunu öğrenemezsiniz..

Workgroup olarak nitelendirilen çalışma grubundan bahsediyorum.

Yinede cevabınız için teşekkür ederim.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Çalışma grubu adını almak.

Mesaj gönderen thelvaci »

Daha basit bir kullanımı aşağıda bulabilirsiniz;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
type
  WKSTA_INFO_100 = record
    wki100_platform_id : Integer;
    wki100_computername: PWideChar;
    wki100_langroup    : PWideChar;
    wki100_ver_major   : Integer;
    wki100_ver_minor   : Integer;
  end;

  PWKSTA_INFO_100 = ^WKSTA_INFO_100;

var
  DLLHandle : THandle;
  GetInfo   : function(ServerName: PWideChar; Level: DWord; var BufPtr: Pointer): Integer; stdcall;
  FreeInfo  : function(Buffer : Pointer): Integer; stdcall;

  Buffer    : PWKSTA_INFO_100;
  RetVal    : Integer;
begin
  DLLHandle := LoadLibrary('NETAPI32.DLL');
  if DLLHandle <> 0 then
  begin
    @GetInfo := GetProcAddress(DLLHandle, 'NetWkstaGetInfo');
    @FreeInfo:= GetProcAddress(DLLHandle, 'NetApiBufferFree');

    RetVal := GetInfo(nil, 100, Pointer(Buffer));
    if RetVal = 0 then
    begin
      Memo1.Lines.Add( WideCharToString(Buffer^.wki100_computername) );
      Memo1.Lines.Add( WideCharToString(Buffer^.wki100_langroup) );

      FreeInfo(Buffer);
    end;
  end;

  FreeLibrary(DLLHandle);
end;
Bu tarz durumlarda izlenmesi gereken yöntem ilgili API'nin Win32 Help'teki tanımının ne olduğuna bakmaktır. Ardından ilgili API metodunun Windows.pas altında tanımlı olması durumunda sorun yok, o tanım gereği kullanabilirsiniz. Ancak örneğimizde olduğu gibi Windows.pas dosyasında tanımlı değil ise; o zaman bizim yaptığımız gibi öncelikle API metodunun tanımlı olduğu DLL'i yüklemek ve ardından GetProcAddress ile o metodun adresini elde etmemiz gerekir. Yine Win32 API yardımında görebileceğiniz gibi; bu API metodu ile kullanılabilecek birden fazla record yapısı da mevcut. Level parametresinin alabileceği değerlere göre istediğimiz record yapısı farklılaşacaktır. Biz Level parametresine 100 geçerek istediğimiz için WKSTA_INFO_100 adlı recordumuz kullanılacak.
level

Specifies one of the following values to return the level of information provided.

Value Meaning
100 The bufptr parameter points to a WKSTA_INFO_100 structure.
101 The bufptr parameter points to a WKSTA_INFO_101 structure.
102 The bufptr parameter points to a WKSTA_INFO_102 structure.
302 The bufptr parameter points to a WKSTA_INFO_302 structure.
402 The bufptr parameter points to an WKSTA_INFO_402 structure.
502 The bufptr parameter points to a WKSTA_INFO_502 structure.
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Çalışma grubu adını almak.

Mesaj gönderen ByDeniS »

@thelvaci

Teşekkür ederim örnekli cevap için. Ayrıca güzel bir noktaya değindiğiniz için ekstra teşekkür ederim (api olayları).

Hayırlı ramazanlar.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Çalışma grubu adını almak.

Mesaj gönderen thelvaci »

ByDeniS yazdı:@thelvaci

Teşekkür ederim örnekli cevap için. Ayrıca güzel bir noktaya değindiğiniz için ekstra teşekkür ederim (api olayları).

Hayırlı ramazanlar.

Rica ederim, hepimizin ramazan-ı şerifi mübarek olsun.
Cevapla