Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Vorhandene PC´s im Netzwerk auflisten (https://www.delphipraxis.net/134748-vorhandene-pc%B4s-im-netzwerk-auflisten.html)

uwe12 28. Mai 2009 06:46


Vorhandene PC´s im Netzwerk auflisten
 
Hallo,
kennt jemand eine Möglichkeit, wie man mit Delphi alle Pc´s, die sich im Netzwerk befinden aufgelistet bekommt und herausfindet, welche davon online sind? Das Netzwerk besteht aus PC´s, wo Windows XP installiert ist und einen Server, wo Windows Server 2003 installiert ist.

mkinzler 28. Mai 2009 06:51

Re: Vorhandene PC´s im Netzwerk auflisten
 
Wird WINS eingesetzt?

Luckie 28. Mai 2009 08:13

Re: Vorhandene PC´s im Netzwerk auflisten
 
Guck dir mal mein LoggedOn an: http://www.michael-puff.de/Developer/Delphi/Programme/

uwe12 28. Mai 2009 19:08

Re: Vorhandene PC´s im Netzwerk auflisten
 
das ist zwar ein tolles programm, aber ich weis jetzt nicht so recht, wie das alles miteinander funktioniert. Könntest du mir mal bitte den Befehl nur für das herausfinden der IP´s sagen.

Fridolin Walther 28. Mai 2009 19:28

Re: Vorhandene PC´s im Netzwerk auflisten
 
MSDN-Library durchsuchenNetServerEnum ist Dein Freund :).

uwe12 29. Mai 2009 06:11

Re: Vorhandene PC´s im Netzwerk auflisten
 
soll das für delphi sein?

mkinzler 29. Mai 2009 06:30

Re: Vorhandene PC´s im Netzwerk auflisten
 
Zitat:

Zitat von uwe12
soll das für delphi sein?

Ist eine Windows-API und kann in (fast) jeder Programmiersprache verwendet werden

DP-Maintenance 29. Mai 2009 06:31

DP-Maintenance
 
Dieses Thema wurde von "mkinzler" von "Die Delphi-IDE" nach "Windows 9x / ME / 2000 / XP / 2003 / Vista" verschoben.
Hat definitiv nichts mit der IDE zu tun

Luckie 29. Mai 2009 09:04

Re: Vorhandene PC´s im Netzwerk auflisten
 
Das ist der entscheidende Code für dich:
Delphi-Quellcode:
class function TMachineCollection.GetAllMachines(const Domain: string; ExceptionMode: TExceptionMode):
  TMachineCollection;
var
  err              : NET_API_STATUS;
  bufPtr           : Pointer;
  si               : Pointer;
  entriesread      : DWORD;
  totalentries     : DWORD;
  resumehandle     : DWORD;
  pCurrent         : PSERVER_INFO_100;
  i                : Integer;
  Machine          : TMachine;
  Major            : Integer;
  Minor            : Integer;
begin
  Result := nil;
  bufPtr := nil;
  resumehandle := 0;
  try
    err := NetServerEnum(nil, 100, bufPtr, MAX_PREFERRED_LENGTH, entriesread, totalentries, SV_TYPE_NT or
      SV_TYPE_WORKSTATION or SV_TYPE_SERVER or SV_TYPE_SERVER_NT, PWideChar(WideString(Domain)),
      resumehandle);
    if err = NERR_SUCCESS then
    begin
      Result := TMachineCollection.Create;
      pCurrent := bufPtr;
      for i := 0 to totalentries - 1 do
      begin
        Machine := TMachine.Create;
        Machine.Machine := pCurrent.sv100_name;

        Machine.IP := Machine.Machine;

        err := NetWkStaGetInfo(PWideChar(WideString(Machine.Machine)), 101, si);
        if err = NERR_Success then
        begin
          Major := PWKSTA_INFO_100(si)^.wki100_ver_major;
          Minor := PWKSTA_INFO_100(si)^.wki100_ver_minor;
          Machine.OS := Machine.OSIdToOSStr(Major, Minor);
        end;

        Machine.SetToD(GetRemoteToD(WideString(Machine.Machine)));

        Result.Add(Machine);
        Machine.LoggedOnUsers := TLoggedOnUserCollection.GetAllUsers(Machine.Machine, emOff);
        Inc(pCurrent);
      end;
    end
    else
      raise ENetAPIError.Create(err);
  finally
    NetApiBufferFree(bufPtr);
  end;
end;
Die gefundenen Rechner werden dann in einer Objektliste abgelegt.

Hätte man aber auch selber draufkommen könne, wenn man sich den Code mal etwas genauer angeguckt hätte. ;)

quendolineDD 29. Mai 2009 12:11

Re: Vorhandene PC´s im Netzwerk auflisten
 
Zitat:

Hätte man aber auch selber draufkommen könne, wenn man sich den Code mal etwas genauer angeguckt hätte.
Der TE scheint von der Thematik rund um WinAPI keinerlei Erfahrung zu haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz