AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Computer aus Netzwerk auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Computer aus Netzwerk auslesen

Ein Thema von StoRmtec · begonnen am 27. Aug 2009 · letzter Beitrag vom 31. Aug 2009
Antwort Antwort
Seite 1 von 3  1 23      
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#1

Computer aus Netzwerk auslesen

  Alt 27. Aug 2009, 23:58
Hy@all

Ich habe hier schon die Routine gefunden das ich im Netz nach Computer scannen kann

hier ist der Code
Delphi-Quellcode:
// --- Netzwerk nach Computer durchsuchen -------------------------------------- //
type
  PNetResourceArray = ^TNetResourceArray;
  TNetResourceArray = array[0..100] of TNetResource;

function CreateNetResourceList(ResourceType: DWord;
                              NetResource: PNetResource;
                              out Entries: DWord;
                              out List: PNetResourceArray): Boolean;
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;
// --- Netzwerk durchsuchen ENDE ------------------------------------------------ //
gebe das ganze dann in eine ChecklistBox aus nur ist bei der Ausgabe immer \\Computername
jetzt würde ich gerne die \\ wegbekommen wie kann man das realisieren oder geht das
überhaupt

Danke

MFG
StoRmtec
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 00:04
Guck dir mal in der Hilfe die Funktion copy an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Question_mark

Registriert seit: 20. Okt 2004
54 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 00:09
Hallo,

Guck dir mal in der Hilfe die Funktion Delete an.

Gruß

Question_mark
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#4

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 00:11
Warum das verstehe ich jetzt ehrlich gesagt nicht

Delphi-Quellcode:
procedure Tfrm_netz.btn_durchsuchenClick(Sender: TObject);
begin
ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, CheckListBox1.Items);
end;
so wird es ausgegeben wenn ihr das meint
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 00:14
Du hast nicht wirklich in der Hilfe geguckt oder?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#6

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 07:13
Nein Habe ich nicht wenn ich ehrlich bin aber ich verstehe es auch nicht was das mit Copyzu tun hat.

Danke
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 09:08
Wie oben angedeutet, entweder mit Delete() die ersten beiden Zeichen löschen oder mit Copy() ab dem 3. Zeichen kopieren. Beides dürfte im Endeffekt das gewünschte Ergebnis liefern.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 13:02
Zitat von StoRmtec:
Nein Habe ich nicht wenn ich ehrlich bin aber ich verstehe es auch nicht was das mit Copyzu tun hat.
Dann tue das mal, dann verstehst du auch den Zusammenhang.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#9

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 15:07
Hallo
Kenne mich zwar immer noch nicht aus wie ihr das meint mit dem delet oder copy weil ich sehe ja da überhaupt nicht die ausgabe???
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Computer aus Netzwerk auslesen

  Alt 28. Aug 2009, 15:15
Hallo StormTec,

mit
procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings); holst Du dir Deine Daten.
Die liegen dann ungefähr in folgender Form vor
Delphi-Quellcode:
//computer1
//computer2
....
hiermit kannst du dann die ausgegebenen Daten manipulieren:
Delphi-Quellcode:
for i:=0 to List.count-1 do begin
  dummy:=list[i];
  delete(dummy,1,2);
  list[i]:=dummy;
end;

oder
  List[i]:=copy(List[i],3,length(list[i])-2);
bei dem copy bin ich mir aber nicht sicher ob das so geht, ggf. auch hier mit einer Zwischenvariablen arbeiten.

Gruß
K-H
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 13:23 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