Ağ Bağlantıları Dialog Kutusu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Ağ Bağlantıları Dialog Kutusu
benim sorum şu Bir butona basınca TreeWiev gibi bir ileşim kutusu yada bir dialog kutusu gelsin içerisinde Çalışma gurupları ve bilgisaylar gözüksün seçilen bilgisayar adını edit e yazsın istiyorum
*******Yardımcı olan herkese Çok Tşk ederim***********
*******Yardımcı olan herkese Çok Tşk ederim***********
bunları yapan hazır 3party bileşenler var torry den falan bulabilirsin. Diğer taraftan sen yapmak iatiyorsan API lerle yapabilirsin. API nin adı aklıma gelmede maalesef 
Kolay gele

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Selamlar...
- Arşivimde, internetten derlediğim, uygulamalarımda Network işlemleri gerektiğinde kullandığım faydalı fonksiyonlar vardı onları bildiriyorum... Herkesin işine yarayacak türden...
- Aşağıda önce fonksiyonu sonra da örneğin bir buton procedure içerisindeki uygulamasını göreceksiniz... Afiyet olsun...
Mevcut bağlı bulunulan WorkGroup (Çalışma Grubu)
Ağ altındaki mevcut WorkGroup isimleri (Çalışma Grupları Listesi)
Belirtilen bir WorkGroup dahilindeki bilgisayarların listesi
Hostname bilinen bilgisayarın IP adresini bulma...
- Arşivimde, internetten derlediğim, uygulamalarımda Network işlemleri gerektiğinde kullandığım faydalı fonksiyonlar vardı onları bildiriyorum... Herkesin işine yarayacak türden...
- Aşağıda önce fonksiyonu sonra da örneğin bir buton procedure içerisindeki uygulamasını göreceksiniz... Afiyet olsun...


Kod: Tümünü seç
function GetNetWorkgroup: string;
var
Reg: TRegistry; // Uses Registry
begin
Reg := TRegistry.create;
Result := '(n/a)';
with Reg do
try
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('System\CurrentControlSet\Services\VxD\VNETSUP',
false) then
Result := ReadString('Workgroup');
finally
CloseKey;
free;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
ShowMessageFmt('Ağ Çalışma Grubu Adı : %s', [GetNetWorkgroup]);
end;

Kod: Tümünü seç
var
WorkgroupCount: Integer;
Workgroup: array[1..500] of string[25];
procedure FindAllWorkgroups;
var
EnumHandle: THandle;
EntireNetwork: TNetResource;
Buf: array[1..500] of TNetResource;
BufSize: DWORD;
Entries: DWORD;
begin
FillChar(EntireNetwork, SizeOf(EntireNetwork), 0);
with EntireNetwork do
begin
dwScope := 2;
dwDisplayType := 6;
dwUsage := 2;
end;
WNetOpenEnum(RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0,
@EntireNetwork,
EnumHandle);
WorkgroupCount := 0;
repeat
Entries := 1;
BufSize := SizeOf(Buf);
WNetEnumResource(EnumHandle,
Entries,
@Buf,
BufSize);
if Entries = 1 then
begin
Inc(WorkgroupCount);
Workgroup[WorkgroupCount] := StrPas(Buf[1].lpRemoteName);
end;
until (Entries <> 1);
WNetCloseEnum(EnumHandle);
end;
procedure TForm1.Button4Click(Sender: TObject);
Var
Sayac : Integer;
begin
FindAllWorkgroups();
Sayac := 1;
Repeat
ListBox1.Items.Add(WorkGroup[Sayac]);
Inc(sayac);
Until Sayac = WorkgroupCount+1;
end;

Kod: Tümünü seç
var
Computer: array[1..500] of string[25];
ComputerCount: Integer;
procedure FindAllComputers(Workgroup: string);
var
EnumHandle: THandle;
WorkgroupRS: TNetResource;
Buf: array[1..500] of TNetResource;
BufSize: DWord;
Entries: DWord;
Result: Integer;
begin
ComputerCount := 0;
Workgroup := Workgroup + #0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS), 0);
with WorkgroupRS do
begin
dwScope := 2;
dwType := 3;
dwDisplayType := 1;
dwUsage := 2;
lpRemoteName := @Workgroup[1];
end;
WNetOpenEnum(RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0,
@WorkgroupRS,
EnumHandle);
repeat
Entries := 1;
BufSize := SizeOf(Buf);
Result :=
WNetEnumResource(EnumHandle,
Entries,
@Buf,
BufSize);
if (Result = NO_ERROR) and (Entries = 1) then
begin
Inc(ComputerCount);
Computer[ComputerCount] := StrPas(Buf[1].lpRemoteName);
end;
until (Entries <> 1) or (Result <> NO_ERROR);
WNetCloseEnum(EnumHandle);
end; { Find All Computers }
procedure TForm1.Button5Click(Sender: TObject);
Var
Sayac : Integer;
begin
FindAllComputers(GetNetWorkgroup);
Sayac := 1;
Repeat
ListBox2.Items.Add(Computer[Sayac]);
Inc(sayac);
Until Sayac = ComputerCount+1;
end;

Kod: Tümünü seç
//Uses Winsock;
function GetAddressByName(name : string) : string;
var
wsdata : TWSAData;
he : PHostEnt;
ss : pchar;
ip : TInAddr;
begin
WSAStartup(MakeWord(1, 1), wsdata);
he := gethostbyname(pchar(name));
if he<>nil then
begin
ip.S_addr := integer(pointer(he^. h_addr_list^)^);
ss := inet_ntoa(ip);
Result := string(ss);
end;
WSACleanup();
end;
En son mrmarman tarafından 03 Oca 2006 06:02 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
olmadı
dediğin kodları denedim ama hata verdi olmadı bildiğiniz bir compenet varsa gönderebilirmisiniz...
Re: olmuyor
ShellTreeView1. yazınca orada bir combobox açılır, oradan dikkatle okursan isimlerden çıkartabilirsin neyin ne olduğunuPetex yazdı:denedim olmuyor arkadaşlara seçtiğim bilgisayarın adını edite yada labele yazdıramadım.
Kod: Tümünü seç
procedure TForm1.ShellTreeView1DblClick(Sender: TObject);
var sMyPath:string;
begin
sMyPath:= ShellTreeView1.SelectedFolder.PathName;
showmessage(sMyPath);
end;
sayın mrmcop
verdiğiniz kodlar çok faydalı, teşekkürler...
sormak istediğim: bilgisayara bağlantı yapan bilgisayarlar hakkında bilgi veren bir program yapmak istiyorum. yardımcı olursanız sevinirim. elde etmek istediğim bilgiler:
bağlanan bilgisayarın ip adresi,
hangi kullanıcı adı ile bağlandığı,
bağlantı saati,
hangi dizindeki hangi programı kullandığı / çalıştırdığı,
bağlandığı bilgisayara dosya gönderdi mi, oradan dosya aldı mı?
bu konu ile ilgili yardımlarınızı bekliyorum. teşekkürler...
verdiğiniz kodlar çok faydalı, teşekkürler...
sormak istediğim: bilgisayara bağlantı yapan bilgisayarlar hakkında bilgi veren bir program yapmak istiyorum. yardımcı olursanız sevinirim. elde etmek istediğim bilgiler:
bağlanan bilgisayarın ip adresi,
hangi kullanıcı adı ile bağlandığı,
bağlantı saati,
hangi dizindeki hangi programı kullandığı / çalıştırdığı,
bağlandığı bilgisayara dosya gönderdi mi, oradan dosya aldı mı?
bu konu ile ilgili yardımlarınızı bekliyorum. teşekkürler...
Merhabalar...
- Command Prompt'da "NET SESSION" ve "NET FILE" dediğimizde aldığımız cevapları içeren bir liste istiyorsunuz...
- Burada sorduğunuz soru itibariyle bire-bir takip etmek mümkün mü, açıkçası bilemiyorum... Diğer yandan windows mesaj sisteminde bunu içeren bir WM_xxx mesajı var olabileceğini ve bu mesaj takip edilerek tetikleme yaptırılmak yoluyla liste güncellemesi yapılabileceğini değerlendiriyorum.
- Şimdilik basit olarak o anki durumu bulmak için Command Promtta, text file yönlendirmesinden yararlanıp listenin oluşturulacağı "sonuc.txt" gibi bir dosya okunarak geçici çözüm üretilebilir...
- Yapılacak işlem program dizininizde oluşacak Sonuc01 ve Sonuc02 isimli iki dosyaya gözatmak veya delphi ile bunu yaptırmak... Timer ile saniyelik peryodlarla bu işlem tekrarlanarak, 1 saniye hassasiyetinde sonuçlar alınabilir...
- Tabi NetWork'ün genişliği de göz önüne alınmalıdır -keza gelecek sonuç 1 saniyeyi geçkin olabilir...
- Bu yönde tecrübem yok ama bu ihtimali gözardı etmemek lazım...
- Üzülerek söylüyorum ki, buradaki alacağınız dosya isimleri kısaltıldığından net bir yol bilgisi sunmayacaktır...
- Karşıma sorunuzun çözümünü içeren bir bilgi çıkarsa bu başlık altına eklerim...
- Command Prompt'da "NET SESSION" ve "NET FILE" dediğimizde aldığımız cevapları içeren bir liste istiyorsunuz...
- Burada sorduğunuz soru itibariyle bire-bir takip etmek mümkün mü, açıkçası bilemiyorum... Diğer yandan windows mesaj sisteminde bunu içeren bir WM_xxx mesajı var olabileceğini ve bu mesaj takip edilerek tetikleme yaptırılmak yoluyla liste güncellemesi yapılabileceğini değerlendiriyorum.
- Şimdilik basit olarak o anki durumu bulmak için Command Promtta, text file yönlendirmesinden yararlanıp listenin oluşturulacağı "sonuc.txt" gibi bir dosya okunarak geçici çözüm üretilebilir...
Kod: Tümünü seç
Var
Sonuc1, Sonuc2 : String;
begin
// Sonuc1 = Bağlı Bilgisayar ve IP
// Sonuc2 = Çalıştığı programlar
Sonuc1 := '"'+ExtractFilePath(Application.ExeName)+'Sonuc01.TXT"';
Sonuc2 := '"'+ExtractFilePath(Application.ExeName)+'Sonuc02.TXT"';
WinExec( PChar('CMD /c NET SESSION > ' + Sonuc1), SW_MINIMIZE );
WinExec( PChar('CMD /c NET FILE > ' + Sonuc2), SW_MINIMIZE );
ShowMessage('Ok');
end;
- Tabi NetWork'ün genişliği de göz önüne alınmalıdır -keza gelecek sonuç 1 saniyeyi geçkin olabilir...

- Üzülerek söylüyorum ki, buradaki alacağınız dosya isimleri kısaltıldığından net bir yol bilgisi sunmayacaktır...
- Karşıma sorunuzun çözümünü içeren bir bilgi çıkarsa bu başlık altına eklerim...