Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 03-02-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
He hecho este pequeño programita ejemplo, para ver si puedes buscar el error.
Tiene un panel alineado alTop con un boton y un Memo para guardar un Log de todos los pasos.
En el evento del botón se llama al procedimiento que copia.
Si alguna función devuelve un error, te lo muestra en el memo.
Yo he probado con
  • IP que no existe
  • Nombre de usuario y contraseña incorrectos
  • Carpeta que no existe dentro de la ip
Todos estos me dan algún tipo de error.

Ya nos contarás...

Código Delphi [-]
unit UFMMainCopia;

interface

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

type
  TFMMainCopia = class(TForm)
    PNLMain: TPanel;  {Panel alineado alTop}
    BCopiar: TButton;
    MLog: TMemo;      {Memo alineado alClient}
    procedure BCopiarClick(Sender: TObject);
  private
    procedure prcCopiARed(vOrigen, vDestino, vUser, vPassword :string);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FMMainCopia: TFMMainCopia;

implementation

{$R *.dfm}

procedure TFMMainCopia.prcCopiARed(vOrigen, vDestino, vUser, vPassword :string);
var
   NetResource: TNetResource;
   vRuta : PChar;
   ErrCode : integer;
   ErrCode2 : LongBool;
begin
   MLog.Clear;
   {*****************************************}
   { IMPORTANTE: vRuta NO debe terminar en \ }
   {*****************************************}
   vRuta := PChar('\\192.168.152.127\Compartida');
   MLog.Lines.Add('vRuta := PChar(''\\192.168.152.127\Compartida'')');

   NetResource.dwType := RESOURCETYPE_DISK;
   MLog.Lines.Add('NetResource.dwType := RESOURCETYPE_DISK');

   //Letra con la cual sera mapeado el recurso
   NetResource.lpLocalName := 'X:';
   MLog.Lines.Add('NetResource.lpLocalName := ''X:''');

   //Nombre del recurso
   NetResource.lpRemoteName := vRuta;
   MLog.Lines.Add('NetResource.lpRemoteName := vRuta');

   NetResource.lpProvider := '';
   MLog.Lines.Add('NetResource.lpProvider := ''''');

   if (vUser = '') then
   begin
      ErrCode := WNetAddConnection2(NetResource, nil, nil, CONNECT_UPDATE_PROFILE);
      MLog.Lines.Add('WNetAddConnection2(NetResource, nil, nil, CONNECT_UPDATE_PROFILE)');
   end
   else
   begin
      ErrCode := WNetAddConnection2(NetResource, PChar(vPassword), PChar(vUser), CONNECT_UPDATE_PROFILE);
      MLog.Lines.Add('WNetAddConnection2(NetResource, PChar(' + vPassword + '), PChar(' + vUser + '), CONNECT_UPDATE_PROFILE)');
   end;

   MLog.Lines.Add('ErrCode: '+IntToStr(ErrCode));
   if (ErrCode = ERROR_ACCESS_DENIED             ) then MLog.Lines.Add('ERROR_ACCESS_DENIED') else
   if (ErrCode = ERROR_ALREADY_ASSIGNED           ) then MLog.Lines.Add('ERROR_ALREADY_ASSIGNED') else
   if (ErrCode = ERROR_BAD_DEV_TYPE              ) then MLog.Lines.Add('ERROR_BAD_DEV_TYPE') else
   if (ErrCode = ERROR_BAD_DEVICE           ) then MLog.Lines.Add('ERROR_BAD_DEVICE') else
   if (ErrCode = ERROR_BAD_NET_NAME           ) then MLog.Lines.Add('ERROR_BAD_NET_NAME') else
   if (ErrCode = ERROR_BAD_PROFILE           ) then MLog.Lines.Add('ERROR_BAD_PROFILE') else
   if (ErrCode = ERROR_BAD_PROVIDER           ) then MLog.Lines.Add('ERROR_BAD_PROVIDER') else
   if (ErrCode = ERROR_BUSY                   ) then MLog.Lines.Add('ERROR_BUSY') else
   if (ErrCode = ERROR_CANCELLED           ) then MLog.Lines.Add('ERROR_CANCELLED') else
   if (ErrCode = ERROR_CANNOT_OPEN_PROFILE       ) then MLog.Lines.Add('ERROR_CANNOT_OPEN_PROFILE') else
   if (ErrCode = ERROR_DEVICE_ALREADY_REMEMBERED ) then MLog.Lines.Add('ERROR_DEVICE_ALREADY_REMEMBERED') else
   if (ErrCode = ERROR_EXTENDED_ERROR            ) then MLog.Lines.Add('ERROR_EXTENDED_ERROR') else
   if (ErrCode = ERROR_INVALID_PASSWORD          ) then MLog.Lines.Add('ERROR_INVALID_PASSWORD') else
   if (ErrCode = ERROR_NO_NET_OR_BAD_PATH        ) then MLog.Lines.Add('ERROR_NO_NET_OR_BAD_PATH') else
   if (ErrCode = ERROR_NO_NETWORK           ) then MLog.Lines.Add('ERROR_NO_NETWORK') else
   MLog.Lines.Add('DESCONOCIDO');

   ErrCode2 := CopyFile(PChar(vOrigen), PChar('X:\destino.txt'), True);
   MLog.Lines.Add('CopyFile(PChar(' + vOrigen + '), PChar(' + vDestino + '), True)');
   if (ErrCode2) then
      MLog.Lines.Add('ErrCode: True')
   else
      MLog.Lines.Add('ErrCode: False');

   ErrCode := WNetCancelConnection2('X:', CONNECT_UPDATE_PROFILE, True);
   MLog.Lines.Add('WNetCancelConnection2(''X:'', CONNECT_UPDATE_PROFILE, True)''');
   MLog.Lines.Add('ErrCode: '+IntToStr(ErrCode));
end;

procedure TFMMainCopia.BCopiarClick(Sender: TObject);
begin
   prcCopiARed('C:\Origen.txt', 'X:\Destino.txt', 'Usuario', 'password');
end;

end.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impedir Copia de archivos de la red. Kipow API de Windows 5 13-12-2009 02:15:01
respado o copia de archivos luis vazquez Tablas planas 2 13-02-2008 20:06:00
Copia de archivos malditango API de Windows 4 03-12-2007 10:25:30
Copia de una carpeta con archivos con delphi jfontane Varios 1 13-10-2006 16:52:55
Copia de archivos por la red gguilleng Varios 1 22-11-2003 14:34:19


La franja horaria es GMT +2. Ahora son las 04:43:56.


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