Autor Beitrag
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Mo 02.09.02 20:33 
Ich bräuchte eine Funktion, die alle Computer, die mit dem Lokalen Netzwerk verbunden sind, aufzulisten. Ich könnte natürlich auch, wenn ich wüsste, das alle PC eine statische IP (z.B: 192.168.115.???), jeden einzelenen anpingen. Doch ist das ersten nicht immer der Fall und zweitens, gibt es da nicht eine einfachere Methode? :) :?:

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Di 03.09.02 09:02 
Dieses Thema würde mich auch interessieren. :lol: :D
Steffer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Di 03.09.02 12:04 
Geht mit WNetOpenEnum. Diese listet alle verfügbaren Netzwerk-Verbindungen auf. Geht auch unter NT/2000/XP
Pit hat folgendes geschrieben:
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
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; 

Procedure TForm1.Button1Click(Sender: TObject); 
var LB : TStringList; 
begin 
  LB:= TStringList.Create; 
  ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, LB); 
Showmessage('Alle Rechner im Netz'  + #10#13 + LB.Text); 
  LB.Free; 
end;


Moderiert von user profile iconTino: Inhalt direkt eingefügt.

_________________
Keine Signatur ...
Jagg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Do 20.11.03 20:36 
Ich habe jetzt die Netzwerk PC's in einer ListBox aufgelistet
Wenn ich jetzt einen PC auswähle,soll eine Abfrage kommen ob ich den PC neu starten möchte oder nicht...wie kann ich jetzt den PC von meinem Rechner aus neu starten???

Jagg !
PheliX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 59



BeitragVerfasst: Di 25.11.03 15:24 
Naja, wenn die PC's XP drauf haben schau mal hier!

Tschau!
PheliX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 59



BeitragVerfasst: Di 25.11.03 16:35 
Schorry, falscher Thread :oops:

bis denn
lolol
Hält's aus hier
Beiträge: 5

Win2000
Delphi 6 Personal
BeitragVerfasst: Di 25.11.03 19:55 
Hi!

Kann mir mal bitte einer den Sourcecode der Unit posten und mir sagen welche Elemete ich auf das Form ziehen muss?

Ich bin Anfänger, und würde das Gerne verstehen!!

Danke schonmal im Vorraus!!!

cu lolol
PheliX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 59



BeitragVerfasst: Di 25.11.03 20:55 
Also:

Erstmal n Button drauf ziehn und dann:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation


{$R *.dfm}

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; 

Procedure TForm1.Button1Click(Sender: TObject);
var LB : TStringList;
begin 
  LB:= TStringList.Create;
  ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, LB);
Showmessage('Alle Rechner im Netz'  + #10#13 + LB.Text);

  LB.Free;
end;

end.


Jetzt öffnet sich n MsgBox und er sagt dir die Rechner die connected sin!

Viel Spass
ixtreme
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 25.11.03 21:28 
Hab den Code mit deinem Namen in XAR eingetragen, falls nicht erwünscht meld dich bitte mal...oki...


ixtreme.de
PheliX
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 59



BeitragVerfasst: Mi 26.11.03 15:00 
Öhhh... nur zu... was auch imma das sein mag?!?