Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Compartir directorio (https://www.clubdelphi.com/foros/showthread.php?t=22208)

D@byt 09-06-2005 10:22:47

Compartir directorio
 
¿Cómo se puede compartir un directorio?
Gracias.

Lepe 09-06-2005 14:30:40

Con 5 clics de ratón. (Ver firma)

¿Te duelen las yemas de los dedos? :D :D

D@byt 09-06-2005 18:49:01

Por favor necesito ayuda.

Lepe 10-06-2005 11:30:59

Tal y como has formulado la pregunta, mi respuesta es totalmente válida.

Estas en el foro Varios, si fuera en el foro OOP, se intuiría que quieres hacerlo por código delphi.

Compartir una carpeta puedes hacerlo desde windows tranquilamente.

Tampoco especificas que version de delphi estas usando.

Solamente pretendía que ampliases tu pregunta, pero veo que... "va a ser que no".

Un saludo

D@byt 12-06-2005 19:43:20

Perdón. Utilizo delphi 7. Quiero hacerlo por código desde delphi.

marcoszorrilla 12-06-2005 21:44:57

Señor D@byt:

Las palabras que Vd. acaba de dirigir a Lepe, uno de los más destacados foristas son absolutamente indignas.

Haga el favor de editar su mensaje, eliminar las alusiones que Vd. dirige a la madre, así como el resto de despropósitos y luego pida perdón, de lo contrario me veré obligado a pedir su baja en estos Foros.

Esto es un lugar de encuentro entre programadores en donde se intercambia código e ideas de manera altruista, no se admite ni el insulto ni la descalificación gratuita, todo ello está contemplado en la "Guia de Estilo", que econtrará Vd. en mi firma.

En espera de que cumplimente lo que se le pide.

Un Saludo.

Lepe 13-06-2005 16:44:58

Para que salga el dialogo estandar de windows para conectar a una unidad de red, basta con esto:
Código Delphi [-]
  WNetConnectionDialog(Handle,RESOURCETYPE_DISK);

Si quieres añadir la unidad de red por código Silencioso (sin mostrar mensajes):
Código Delphi [-]
procedure TForm1.btnConectaPorCodigoClick(Sender: TObject);
var
  Err:Cardinal;
  Msg:string;
  NetResource: TNetResource;
begin

  // LLenamos la estructura NetResource
  NetResource.dwType       := RESOURCETYPE_DISK  ;
  NetResource.lpLocalName  := pchar('Z:');
  NetResource.lpRemoteName := PChar('\\winxp\imagenes');
  NetResource.lpProvider   := nil;

  // mapeamos la unidad con la estructura anterior
  Err:= WNetAddConnection2(NetResource,
                     nil, // contraseña o dejar vacio
                     nil, // Nombre del usurio o vacio/User name o vacio}
                     CONNECT_UPDATE_PROFILE);
  if Err <> NO_ERROR then
  begin
      case Err of
      ERROR_ACCESS_DENIED             : Msg :='ERROR_ACCESS_DENIED             :';
      ERROR_ALREADY_ASSIGNED          : Msg :='ERROR_ALREADY_ASSIGNED          :';
      ERROR_BAD_DEV_TYPE              : Msg :='ERROR_BAD_DEV_TYPE              :';
      ERROR_BAD_DEVICE                : Msg :='ERROR_BAD_DEVICE                :';
      ERROR_BAD_NET_NAME              : Msg :='ERROR_BAD_NET_NAME              :';
      ERROR_BAD_PROFILE               : Msg :='ERROR_BAD_PROFILE               :';
      ERROR_BAD_PROVIDER              : Msg :='ERROR_BAD_PROVIDER              :';
      ERROR_BUSY                      : Msg :='ERROR_BUSY                      :';
      ERROR_CANCELLED                 : Msg :='ERROR_CANCELLED                 :';
      ERROR_CANNOT_OPEN_PROFILE       : Msg :='ERROR_CANNOT_OPEN_PROFILE       :';
      ERROR_DEVICE_ALREADY_REMEMBERED : Msg :='ERROR_DEVICE_ALREADY_REMEMBERED :';
      ERROR_EXTENDED_ERROR            : Msg :='ERROR_EXTENDED_ERROR            :';
      ERROR_INVALID_PASSWORD          : Msg :='ERROR_INVALID_PASSWORD          :';
      ERROR_NO_NET_OR_BAD_PATH        : Msg :='ERROR_NO_NET_OR_BAD_PATH        :';
      ERROR_NO_NETWORK                : Msg :='ERROR_NO_NETWORK                :';
      ERROR_NOT_CONNECTED             : Msg :='ERROR_NOT_CONNECTED             :';
      end;
      Raise Exception.create('Error al conectar la unidad '+ #10#13+Msg );
   end;
end;

procedure TForm1.btnDesconectaClick(Sender: TObject);
begin
 if WNetCancelConnection2( 'Z:',1,TRUE) <> NO_ERROR then
    Raise Exception.create('Error al desconectar la unidad');

end;

Si deseas ver una lista de las unidades actuales:
Código Delphi [-]
procedure TForm1.btnUnidadesRedClick(Sender: TObject);
  function GetNetworkDriveMappings(SList:TStrings):Integer;
  var
   I:Char;
   ThePath:String;
   MaxNetPathLen:DWord;
  begin
    SList.Clear;
    MaxNetPathLen:=MAX_PATH;
    SetLength(ThePath,MAX_PATH);

    for I := 'A' to 'Z' do
     if WNetGetConnection(PChar(''+I+':'),PChar(ThePath),
                          MaxNetPathLen)<>ERROR_NOT_CONNECTED then
       SList.Add(I+': '+ThePath);

     {Devuelve el numero de conexiones}
     Result := SList.Count;
  end;
begin
  listbox1.Items.Add('Unidades de Red Encontradas: '+inttostr( GetNetworkDriveMappings(Listbox1.items)));
end;


Espero que te sean de utilidad, si necesitas algo más, avisa.

Saludos

D@byt 13-06-2005 19:02:49

Muchísimas gracias.


La franja horaria es GMT +2. Ahora son las 17:41:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi