Announcement

Collapse
No announcement yet.

Computernamen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Computernamen

    Hi all!

    Ich habe folgendes Problem, ich möchte gern alle Computernamen, die im Netzwerk angemeldet sind anzeigen. Und natürlich über einen Button ständig aktualisieren. Das wichtigste ist aber dabei, dass die Namen und die Rechnerkennung bei Aktualisierung in eine Stringliste geschrieben werden, dass ich danach darauf zugreifen kann. Hätte jemand eine passende Lösung bitte für mich?
    Vielen Dank!

  • #2
    Ja, wie gesagt: hier im EF unter "Netzwerk" oder "WinAPI" mal nach Andreas Kosch suchen lassen. Da gibt´s ein Beispiel. Ist zwar nicht mit StringListe, aber das solltest du doch hinbekommen. ;o)

    Gruß,
    Mathias

    Comment


    • #3
      Hallo, hier ein kleines Demo mit D4<BR>

      procedure TForm1.GetNetworkstationsButtonClick(Sender: TObject);<BR>
      var<BR>
      NetResource : TNetResource;<BR>
      ArNetResource : Array [0..2500] of TNetResource;<BR>
      rHandle : THandle;<BR>
      Entries, i : LongWord;<BR>
      resSize : LongWord;<BR>
      LastError : Integer;<BR>
      s : String;<BR>
      begin<BR>
      inherited;<BR>
      try<BR>
      Entries := 2500;<BR>
      ResSize := SizeOf(ArNetResource);<BR>
      // ResourceUsage kann sein: _CONTAINER (2), _NOLOCALDEVICE(4), _SIBLING (8)<BR>
      LastError := WNetOpenEnum(RESOURCE_CONTEXT, RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER , @ArNetResource, rHandle);<BR>
      case LastError of<BR>
      ERROR_NOT_CONTAINER : ShowMessage('ERROR_NOT_CONTAINER');<BR>
      ERROR_INVALID_PARAMETER : ShowMessage('ERROR_INVALID_PARAMETER');<BR>
      ERROR_NO_NETWORK : ShowMessage('ERROR_NO_NETWORK');<BR>
      ERROR_EXTENDED_ERROR : ShowMessage('ERROR_EXTENDED_ERROR');<BR>
      end;<BR>
      LAstError := WNetEnumResource(rHandle, Entries , @ArNetResource, ResSize);<BR>
      case LastError of<BR>
      ERROR_MORE_DATA : ShowMessage('ERROR_MORE_DATA ');<BR>
      ERROR_INVALID_HANDLE : ShowMessage('ERROR_INVALID_HANDLE');<BR>
      ERROR_NO_NETWORK : ShowMessage('ERROR_NO_NETWORK');<BR>
      ERROR_EXTENDED_ERROR : ShowMessage('ERROR_EXTENDED_ERROR');<BR>
      end;<BR>
      finally<BR>
      WNetCloseEnum(rHandle);<BR>
      end;<BR>
      try<BR>
      // Hier wird noch die Beschreibung der WS hinzugefügt in der Listbox gespeichert<BR>
      For i := 1 to Entries do begin<BR>
      s := StrPAs(ArNetResource[i].lpRemoteName);<BR>
      While Length(s) < 20 do<BR>
      s := s + ' ';<BR>

      s := s + StrPAs(ArNetResource[i].lpComment);<BR>
      ListBox1.Items.Add(s);<BR>
      end;<BR>
      except<BR>
      end;<BR>
      end;<BR>

      Hoffe es hilft dir weiter<BR>
      Gruß Matthias<BR&gt

      Comment

      Working...
      X