AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Alle PC-Namen eines Netzwerkes erhalten
Thema durchsuchen
Ansicht
Themen-Optionen

Alle PC-Namen eines Netzwerkes erhalten

Ein Thema von Illuminator-23-5 · begonnen am 3. Jul 2003 · letzter Beitrag vom 17. Mai 2011
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    
Illuminator-23-5
(Gast)

n/a Beiträge
 
#1

Alle PC-Namen eines Netzwerkes erhalten

  Alt 3. Jul 2003, 18:34
gibt es im delphi eine möglichkeit, eine liste mit allen ans netzwerk angeschlossene PCs zu erhalten?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 3. Jul 2003, 18:37
Moin Illuminator,

such' mal hier noch WNetEnumResource.
Das hatten wir schon.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 4. Jul 2003, 16:55
Hiho ...

hier hab ich maln Code dafür:
Code:
type
  PNetResourceArray = ^TNetResourceArray;
  TNetResourceArray = array[0..100] of TNetResource;

function CreateNetResourceList(ResourceType: DWord;
                              NetResource: PNetResource;
                              out Entries: DWord;
                              out List: PNetResourceArray): Boolean;
var
  EnumHandle: THandle;
  BufSize: DWord;
  Res: DWord;
begin
  Result := False;
  List := Nil;
  Entries := 0;
  if WNetOpenEnum(RESOURCE_GLOBALNET,
                  ResourceType,
                  0,
                  NetResource,
                  EnumHandle) = NO_ERROR then begin
    try
      BufSize := $4000; // 16 kByte
      GetMem(List, BufSize);
      try
        repeat
          Entries := DWord(-1);
          FillChar(List^, BufSize, 0);
          Res := WNetEnumResource(EnumHandle, Entries, List, BufSize);
          if Res = ERROR_MORE_DATA then begin
            ReAllocMem(List, BufSize);
          end;
        until Res <> ERROR_MORE_DATA;

        Result := Res = NO_ERROR;
        if not Result then begin
          FreeMem(List);
          List := Nil;
          Entries := 0;
        end;
      except
        FreeMem(List);
        raise;
      end;
    finally
      WNetCloseEnum(EnumHandle);
    end;
  end;
end;

procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings);

procedure ScanLevel(NetResource: PNetResource);
var
  Entries: DWord;
  NetResourceList: PNetResourceArray;
  i: Integer;
begin
  if CreateNetResourceList(ResourceType, NetResource, Entries, NetResourceList) then try
    for i := 0 to Integer(Entries) - 1 do begin
      if (DisplayType = RESOURCEDISPLAYTYPE_GENERIC) or
        (NetResourceList[i].dwDisplayType = DisplayType) then begin
        List.AddObject(NetResourceList[i].lpRemoteName,
                      Pointer(NetResourceList[i].dwDisplayType));
      end;
      if (NetResourceList[i].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
        ScanLevel(@NetResourceList[i]);
    end;
  finally
    FreeMem(NetResourceList);
  end;
end;

begin
  ScanLevel(Nil);
end;
Code:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, ListBox1.Items);
end;

hoffe es klappt bei dir! Bei mir klappts zumindest! ^^


cu Trouble_Maker
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Alle PC-Namen eines Netzwerkes erhalten

  Alt 8. Jul 2003, 14:06
Hi zusammen!

Ich habe ein Pronlem...
Mein Informatiklehrer hat gemeint, dass keiner aus unserer Klasse das schaft, sich die Netzwerk-PCs unseres Internetraums in einer ListBox anzeigen zu lassen. Doch ich habe gesagt, dass ich's schaffe (blöd von mir!)
Jetzt habe ich den obigen Code verwendet, aber mein Programm listet mir nur folgendes auf: \\EASYSERVER, obwohl mind. 10 PC angeschaltet sind.

Was mache ich falsch??

Gruß Matze
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Alle PC-Namen eines Netzwerkes erhalten

  Alt 8. Jul 2003, 17:00
Moin Matze,

ich hab' den Code eben mal ausprobiert, der tut's einwandfrei.

Kannst Du aus Windows heraus die anderen Rechner in der Netzwerkumgebung sehen?
Wenn für die Workstations das Browsing abgeschaltet ist, werden sie dort nämlich auch nicht angezeigt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Alle PC-Namen eines Netzwerkes erhalten

  Alt 8. Jul 2003, 17:11
Hi!

Wenn ich an die Benutzer per Net Send Befehle schicke, dann geht das, falls du das meinst.

Gruß Matze
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Alle PC-Namen eines Netzwerkes erhalten

  Alt 8. Jul 2003, 17:28
Moin Matze,

nein, das meine ich nicht.
Das die Rechner mit ihren Namen erreichbar sind, hat nichts damit zu tun, ob man sie in der Netzwerkumgebung sehen kann oder nicht.
Das ist so ähnlich wie mit den versteckten Freigaben. Sie sind da, man kann sie sich verbinden, bzw. darauf zugreifen, aber im Explorer sehen kann man sie nicht.

Wenn Du in den Explorer gehst, Netzwerkumgebung, und da mal schaust
(Netzwerkumgebung, dann in Microsoft Windows-Netzwerk), müssten die Domänen/Arbeitsgruppen zu sehen sein, soweit verfügbar, und darin wieder die einzelnen Rechner.

Deshalb meine Frage: Sind die Rechner da zu sehen?

Wenn nicht, hat sich euer Lehrer nämlich eine "kleine Gemeinheit" einfallen lassen
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Alle PC-Namen eines Netzwerkes erhalten

  Alt 8. Jul 2003, 17:31
Ich bin grad nicht in der Schule, aber ich glaube in der Netzwerkumgebung sind die Rechner nicht aufgeführt. Heißt das, mein Lehrer hatte Recht, als er sagte, das könne niemand von uns proggen?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Alle PC-Namen eines Netzwerkes erhalten

  Alt 8. Jul 2003, 17:34
Moin Matze,

wenn sie da nicht zu sehen sind, melden sie sich nicht beim Browserdienst (hat nichts mit dem Webbrowser zu tun).
Dann dürfte es mit den WNetxxx Funktionen nicht machbar sein.

Aber es gibt auch noch andere

Auf welchem Betriebbsystem soll das Programm laufen?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Alle PC-Namen eines Netzwerkes erhalten

  Alt 8. Jul 2003, 17:35
Na ja, es gäbe immernoch die BruteForce-Methode. Also alle erdenklichen Namen bilden und einen Verbindungsversuch starten. Könnte allerdings ein paar Tage dauern
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz