Pregunta: | 18592 - COMO PUEDO LEER UNIDADES Y EQUIPOS CONECTADOS A MI COMPUTADO |
Autor: | Ramiro Arias |
Como puedo obtener la informacion de los Unidades, directorios de mi computador y el nombre de los equipos que esten conectados a la red.
Necesito hacer una forma muy parecida al windows explorer. Estuve mirando los componentes DriveList, FilterList, etc. pero a estos solo me trabajan si asigno a una unidad de red las carpetas compartidades de los otros equipos. Agradezco la ayuda que me puedan dar. Gracias |
Respuesta: | Miguel Lucero |
Espero que el siguiente código te sirva
Creo que lo saqué de la página del club delphi: http://www.clubdelphi.com --------------------------------------- Llamar a la función FindComputer, ésta devolverá un error de WinAPI en caso contrario. La función llenará un StringList con los nombres de las computadoras de la RED. unit FindComp; interface uses Windows, Classes; function FindComputers: DWORD; var Computers: TStringList; implementation uses SysUtils; const MaxEntries = 250; function FindComputers: DWORD; var EnumWorkGroupHandle, EnumComputerHandle: THandle; EnumError: DWORD; Network: TNetResource; WorkGroupEntries, ComputerEntries: DWORD; EnumWorkGroupBuffer, EnumComputerBuffer: array[1..MaxEntries] of TNetResource; EnumBufferLength: DWORD; I, J: DWORD; begin Computers.Clear; FillChar(Network, SizeOf(Network), 0); with Network do begin dwScope := RESOURCE_GLOBALNET; dwType := RESOURCETYPE_ANY; dwUsage := RESOURCEUSAGE_CONTAINER; end; EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @Network, EnumWorkGroupHandle); if EnumError = NO_ERROR then begin WorkGroupEntries := MaxEntries; EnumBufferLength := SizeOf(EnumWorkGroupBuffer); EnumError := WNetEnumResource(EnumWorkGroupHandle, WorkGroupEntries, @EnumWorkGroupBuffer, EnumBufferLength); if EnumError = NO_ERROR then begin for I := 1 to WorkGroupE |