Volver a conectarse a los recursos compartidos de red con el uso de un componente


Nunca perdió una red compartir y no sabía cómo conectarse a ella?
Bueno, con este componente se puede buscar en la red para un determinado recurso compartido que contiene un archivo o un directorio y volver a conectar automáticamente.
NOTA: SI USTED YA CONOCE LA UBICACIÓN DE LA parte que USTED NO DEBERÍA USAR ESTE COMPONENTE COMO EN GRANDES REDES SERÁ LENTA. ESTO ES SÓLO SI USTED NO SABE LA UBICACIÓN EXACTA PERO PUEDE LOCALIZAR MEDIANTE EL USO DE UN MARCADOR, COMO UN ARCHIVO O UNA CARPETA.
SUGERENCIA: Utilice el BeforeConnect Evento para especificar si la conexión debe ser hecha.
unidad de volver a Conectar
interfaz
usos
& nbsp & nbsp Windows, Mensajes,StdCtrls, SysUtils, Classes, Graphics, Controles, Formularios, cuadros de diálogo,FileCtrl
tipo
& nbsp & nbsp TSIsType=(itDir,itIniFile,itApp,itOther)
& nbsp & nbsp TBeforeConnectEvent=procedimiento(Propietario:TObject AssignPath:string var Aceptar:boolean) del objeto
& nbsp & nbsp TAfterConnectEvent=procedimiento(Propietario:TObject AssignedPath:string) del objeto
& nbsp & nbsp TOnFail=procedimiento(Propietario:TObject FailMessage:string) del objeto
& nbsp & nbsp TReconnect = clase(TComponent)
& nbsp & nbsp privada
& nbsp & nbsp & nbsp & nbsp { Private declarations }
& nbsp & nbsp & nbsp & nbsp DidAssign:boolean
& nbsp & nbsp & nbsp & nbsp FItemToLookFor:String
& nbsp & nbsp & nbsp & nbsp FUserName:String
& nbsp & nbsp & nbsp & nbsp FPassword:String
& nbsp & nbsp & nbsp & nbsp FLetterToAssign:Char
& nbsp & nbsp & nbsp & nbsp FIsType:TSIsType
& nbsp & nbsp & nbsp & nbsp FOutputLabel:TLabel
& nbsp & nbsp & nbsp & nbsp FFailMessage:String
& nbsp & nbsp & nbsp & nbsp FBeforeConnect:TBeforeConnectEvent
& nbsp & nbsp & nbsp & nbsp FAfterConnect:TAfterConnectEvent
& nbsp & nbsp & nbsp & nbsp FOnFail:TOnFail
& nbsp & nbsp & nbsp & nbsp función DoEnum(NetResT:PNetResourceA):integer
& nbsp & nbsp & nbsp & nbsp función addbs(g:string):string SOBRECARGA
& nbsp & nbsp & nbsp & nbsp función addbs(g:cadena de BARRA:CHAR):cadena de SOBRECARGA
& nbsp & nbsp & nbsp & nbsp función SearchFor(NetResT:NETRESOURCE Camino,param:string):boolean
& nbsp & nbsp protegido
& nbsp & nbsp & nbsp & nbsp { declaraciones Protegidos }
& nbsp & nbsp pública
& nbsp & nbsp & nbsp & nbsp { Public declarations }
& nbsp & nbsp publicado
& nbsp & nbsp & nbsp & nbsp { Publicado declaraciones }
& nbsp & nbsp & nbsp & nbsp función SearchAndAssign:boolean
& nbsp & nbsp & nbsp & nbsp propiedad ItemToLookFor:Cadena de leer FItemToLookFor escribir FItemToLookFor
& nbsp & nbsp & nbsp & nbsp propiedad LetterToAssign:Char leer FLetterToAssign escribir FLetterToAssign
& nbsp & nbsp & nbsp & nbsp propiedad IsType:TSIsType leer FIsType escribir FIsType defecto itDir
& nbsp & nbsp & nbsp & nbsp propiedad OutputLabel:TLabel leer FOutputLabel escribir FOutputLabel
& nbsp & nbsp & nbsp & nbsp propiedad nombre de Usuario:Cadena de leer FUserName escribir FUserName
& nbsp & nbsp & nbsp & nbsp propiedad Contraseña:Cadena de leer FPassword escribir FPassword
& nbsp & nbsp & nbsp & nbsp propiedad BeforeConnect:TBeforeConnectEvent leer FBeforeConnect escribir FBeforeConnect
& nbsp & nbsp & nbsp & nbsp propiedad AfterConnect:TAfterConnectEvent leer FAfterConnect escribir FAfterConnect
& nbsp & nbsp & nbsp & nbsp propiedad espacios onfail:TOnFail leer FOnFail escribir FOnFail
& nbsp & nbsp final

procedimiento de Registro
aplicación

Función TReconnect.addbs(g:cadena de BARRA:CHAR):string
begin
& nbsp & nbsp g:=trim(g)
& nbsp & nbsp si g<>'
& nbsp & nbsp, a continuación, empezar
& nbsp & nbsp & nbsp & nbsp si g[longitud(g)]<>SLASH
& nbsp & nbsp & nbsp & nbsp entonces el resultado:=g SLASH
& nbsp & nbsp & nbsp & nbsp else result:=g
& nbsp & nbsp final
& nbsp & nbsp else result:=g
fin
función TReconnect.addbs(g:string):string
begin
resultado:=addbs(g,'/')
fin
función TReconnect.SearchFor(NetResT:NETRESOURCE Camino,param:string):boolean
var
& nbsp & nbsp continuación:boolean
& nbsp & nbsp Existe:boolean
begin
& nbsp & nbsp Existe:=false
& nbsp & nbsp ruta de acceso:=addbs(ruta de acceso)
& nbsp & nbsp SearchFor:=false
& nbsp & nbsp si IsType=itDir, a continuación,
& nbsp & nbsp & nbsp & nbsp Existe:=directoryExists(ruta param)
& nbsp & nbsp si IsType=itIniFile, a continuación,
& nbsp & nbsp & nbsp & nbsp Existe:=FileExists(ruta param)
& nbsp & nbsp si IsType=itApp, a continuación,
& nbsp & nbsp & nbsp & nbsp Existe:=FileExists(ruta param)
& nbsp & nbsp si IsType=itOther, a continuación,
& nbsp & nbsp & nbsp & nbsp Existe:=FileExists(ruta param)
& nbsp & nbsp si Existe
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp continuación:=true
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha asignado(FBeforeConnect), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp BeforeConnect(auto,camino,cont)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp showmessage('no se pudo llamar BeforeConnect.')
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final

& nbsp & nbsp & nbsp & nbsp & nbsp & si nbsp continuación, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp NetResT.lpLocalName:=pchar(string(FLetterToAssign) ':')
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp WNetAddConnection2A(NetResT,pchar(nombre de Usuario),pchar(Contraseña),CONNECT_UPDATE_PROFILE)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp DidAssign:=true
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha asignado(FAfterConnect) a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp AfterConnect(auto,camino)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp showmessage('no se pudo llamar AfterConnect.')
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto en E: Exception
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Showmessage(E. Mensaje)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SearchFor:=true
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
función TReconnect.DoEnum(NetResT:PNetResourceA):integer
var
& nbsp & nbsp EnumH:THandle
& nbsp & nbsp cnt:el cardenal
& nbsp & nbsp buffsize:el cardenal
& nbsp & nbsp NetResBuf:array [0..200] de NETRESOURCE
& nbsp & nbsp res:word
& nbsp & nbsp i:integer
begin
& nbsp & nbsp si DidAssign, a continuación,
& nbsp & nbsp & nbsp & nbsp salida
& nbsp & nbsp probar
& nbsp & nbsp cnt:=255
& nbsp & nbsp WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetResT,EnumH)
& nbsp & nbsp res:=0
& nbsp & nbsp while (res=NO_ERROR) hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp buffsize:=sizeof(NetResBuf)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp res:=WNetEnumResource(EnumH,cnt,@NetResBuf,buffsize)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp for i:=0 a cnt-1 hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha Asignado(OutputLabel), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp OutputLabel.Caption:=NetResBuf[i].lpRemoteName
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp OutputLabel.Actualización
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si NetResBuf[i].dwDisplayType=RESOURCEDISPLAYTYPE_SHARE, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si no DidAssign, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si SearchFor(NetResBuf[i],string(NetResBuf[i].lpRemoteName),ItemToLookFor), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp resultado:=0
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp salida
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (NetResBuf[i].dwScope=RESOURCEUSAGE_CONTAINER), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp doEnum(@NetResBuf[i])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp WNetCloseEnum(EnumH)
& nbsp & nbsp resultado:=1
& nbsp & nbsp excepto en E: Exception
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FFailMessage:=E. el Mensaje
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha Asignado(FOnFail), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp espacios onfail(Propietario,FFailMessage)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp resultado:=0
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
fin
función TReconnect.SearchAndAssign:boolean
begin
& nbsp & nbsp DidAssign:=false
& nbsp & nbsp DoEnum(nil)
& nbsp & nbsp resultado:=true
fin
procedimiento de Registro
begin
& nbsp & nbsp RegisterComponents('VNPVcls', [TReconnect])
fin
final.









Volver a conectarse a los recursos compartidos de red con el uso de un componente


Volver a conectarse a los recursos compartidos de red con el uso de un componente : Multi-millones de consejos para hacer su vida mas facil.


Nunca perdio una red compartir y no sabia como conectarse a ella?
Bueno, con este componente se puede buscar en la red para un determinado recurso compartido que contiene un archivo o un directorio y volver a conectar automaticamente.
NOTA: SI USTED YA CONOCE LA UBICACION DE LA parte que USTED NO DEBERIA USAR ESTE COMPONENTE COMO EN GRANDES REDES SERA LENTA. ESTO ES SOLO SI USTED NO SABE LA UBICACION EXACTA PERO PUEDE LOCALIZAR MEDIANTE EL USO DE UN MARCADOR, COMO UN ARCHIVO O UNA CARPETA.
SUGERENCIA: Utilice el BeforeConnect Evento para especificar si la conexion debe ser hecha.
unidad de volver a Conectar
interfaz
usos
& nbsp & nbsp Windows, Mensajes,StdCtrls, SysUtils, Classes, Graphics, Controles, Formularios, cuadros de dialogo,FileCtrl
tipo
& nbsp & nbsp TSIsType=(itDir,itIniFile,itApp,itOther)
& nbsp & nbsp TBeforeConnectEvent=procedimiento(Propietario:TObject AssignPath:string var Aceptar:boolean) del objeto
& nbsp & nbsp TAfterConnectEvent=procedimiento(Propietario:TObject AssignedPath:string) del objeto
& nbsp & nbsp TOnFail=procedimiento(Propietario:TObject FailMessage:string) del objeto
& nbsp & nbsp TReconnect = clase(TComponent)
& nbsp & nbsp privada
& nbsp & nbsp & nbsp & nbsp { Private declarations }
& nbsp & nbsp & nbsp & nbsp DidAssign:boolean
& nbsp & nbsp & nbsp & nbsp FItemToLookFor:String
& nbsp & nbsp & nbsp & nbsp FUserName:String
& nbsp & nbsp & nbsp & nbsp FPassword:String
& nbsp & nbsp & nbsp & nbsp FLetterToAssign:Char
& nbsp & nbsp & nbsp & nbsp FIsType:TSIsType
& nbsp & nbsp & nbsp & nbsp FOutputLabel:TLabel
& nbsp & nbsp & nbsp & nbsp FFailMessage:String
& nbsp & nbsp & nbsp & nbsp FBeforeConnect:TBeforeConnectEvent
& nbsp & nbsp & nbsp & nbsp FAfterConnect:TAfterConnectEvent
& nbsp & nbsp & nbsp & nbsp FOnFail:TOnFail
& nbsp & nbsp & nbsp & nbsp funcion DoEnum(NetResT:PNetResourceA):integer
& nbsp & nbsp & nbsp & nbsp funcion addbs(g:string):string SOBRECARGA
& nbsp & nbsp & nbsp & nbsp funcion addbs(g:cadena de BARRA:CHAR):cadena de SOBRECARGA
& nbsp & nbsp & nbsp & nbsp funcion SearchFor(NetResT:NETRESOURCE Camino,param:string):boolean
& nbsp & nbsp protegido
& nbsp & nbsp & nbsp & nbsp { declaraciones Protegidos }
& nbsp & nbsp publica
& nbsp & nbsp & nbsp & nbsp { Public declarations }
& nbsp & nbsp publicado
& nbsp & nbsp & nbsp & nbsp { Publicado declaraciones }
& nbsp & nbsp & nbsp & nbsp funcion SearchAndAssign:boolean
& nbsp & nbsp & nbsp & nbsp propiedad ItemToLookFor:Cadena de leer FItemToLookFor escribir FItemToLookFor
& nbsp & nbsp & nbsp & nbsp propiedad LetterToAssign:Char leer FLetterToAssign escribir FLetterToAssign
& nbsp & nbsp & nbsp & nbsp propiedad IsType:TSIsType leer FIsType escribir FIsType defecto itDir
& nbsp & nbsp & nbsp & nbsp propiedad OutputLabel:TLabel leer FOutputLabel escribir FOutputLabel
& nbsp & nbsp & nbsp & nbsp propiedad nombre de Usuario:Cadena de leer FUserName escribir FUserName
& nbsp & nbsp & nbsp & nbsp propiedad Contraseña:Cadena de leer FPassword escribir FPassword
& nbsp & nbsp & nbsp & nbsp propiedad BeforeConnect:TBeforeConnectEvent leer FBeforeConnect escribir FBeforeConnect
& nbsp & nbsp & nbsp & nbsp propiedad AfterConnect:TAfterConnectEvent leer FAfterConnect escribir FAfterConnect
& nbsp & nbsp & nbsp & nbsp propiedad espacios onfail:TOnFail leer FOnFail escribir FOnFail
& nbsp & nbsp final

procedimiento de Registro
aplicacion

Funcion TReconnect.addbs(g:cadena de BARRA:CHAR):string
begin
& nbsp & nbsp g:=trim(g)
& nbsp & nbsp si g<>'
& nbsp & nbsp, a continuacion, empezar
& nbsp & nbsp & nbsp & nbsp si g[longitud(g)]<>SLASH
& nbsp & nbsp & nbsp & nbsp entonces el resultado:=g SLASH
& nbsp & nbsp & nbsp & nbsp else result:=g
& nbsp & nbsp final
& nbsp & nbsp else result:=g
fin
funcion TReconnect.addbs(g:string):string
begin
resultado:=addbs(g,'/')
fin
funcion TReconnect.SearchFor(NetResT:NETRESOURCE Camino,param:string):boolean
var
& nbsp & nbsp continuacion:boolean
& nbsp & nbsp Existe:boolean
begin
& nbsp & nbsp Existe:=false
& nbsp & nbsp ruta de acceso:=addbs(ruta de acceso)
& nbsp & nbsp SearchFor:=false
& nbsp & nbsp si IsType=itDir, a continuacion,
& nbsp & nbsp & nbsp & nbsp Existe:=directoryExists(ruta param)
& nbsp & nbsp si IsType=itIniFile, a continuacion,
& nbsp & nbsp & nbsp & nbsp Existe:=FileExists(ruta param)
& nbsp & nbsp si IsType=itApp, a continuacion,
& nbsp & nbsp & nbsp & nbsp Existe:=FileExists(ruta param)
& nbsp & nbsp si IsType=itOther, a continuacion,
& nbsp & nbsp & nbsp & nbsp Existe:=FileExists(ruta param)
& nbsp & nbsp si Existe
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp continuacion:=true
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha asignado(FBeforeConnect), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp BeforeConnect(auto,camino,cont)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp showmessage('no se pudo llamar BeforeConnect.')
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final

& nbsp & nbsp & nbsp & nbsp & nbsp & si nbsp continuacion, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp NetResT.lpLocalName:=pchar(string(FLetterToAssign) ':')
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp WNetAddConnection2A(NetResT,pchar(nombre de Usuario),pchar(Contraseña),CONNECT_UPDATE_PROFILE)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp DidAssign:=true
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp probar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha asignado(FAfterConnect) a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp AfterConnect(auto,camino)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp showmessage('no se pudo llamar AfterConnect.')
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp excepto en E: Exception
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Showmessage(E. Mensaje)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SearchFor:=true
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
fin
funcion TReconnect.DoEnum(NetResT:PNetResourceA):integer
var
& nbsp & nbsp EnumH:THandle
& nbsp & nbsp cnt:el cardenal
& nbsp & nbsp buffsize:el cardenal
& nbsp & nbsp NetResBuf:array [0..200] de NETRESOURCE
& nbsp & nbsp res:word
& nbsp & nbsp i:integer
begin
& nbsp & nbsp si DidAssign, a continuacion,
& nbsp & nbsp & nbsp & nbsp salida
& nbsp & nbsp probar
& nbsp & nbsp cnt:=255
& nbsp & nbsp WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetResT,EnumH)
& nbsp & nbsp res:=0
& nbsp & nbsp while (res=NO_ERROR) hacer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp buffsize:=sizeof(NetResBuf)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp res:=WNetEnumResource(EnumH,cnt,@NetResBuf,buffsize)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp for i:=0 a cnt-1 hacer
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha Asignado(OutputLabel), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp OutputLabel.Caption:=NetResBuf[i].lpRemoteName
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp OutputLabel.Actualizacion
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si NetResBuf[i].dwDisplayType=RESOURCEDISPLAYTYPE_SHARE, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si no DidAssign, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si SearchFor(NetResBuf[i],string(NetResBuf[i].lpRemoteName),ItemToLookFor), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp resultado:=0
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp salida
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si (NetResBuf[i].dwScope=RESOURCEUSAGE_CONTAINER), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp doEnum(@NetResBuf[i])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp WNetCloseEnum(EnumH)
& nbsp & nbsp resultado:=1
& nbsp & nbsp excepto en E: Exception
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp FFailMessage:=E. el Mensaje
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si se ha Asignado(FOnFail), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp espacios onfail(Propietario,FFailMessage)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp resultado:=0
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
fin
funcion TReconnect.SearchAndAssign:boolean
begin
& nbsp & nbsp DidAssign:=false
& nbsp & nbsp DoEnum(nil)
& nbsp & nbsp resultado:=true
fin
procedimiento de Registro
begin
& nbsp & nbsp RegisterComponents('VNPVcls', [TReconnect])
fin
final.


Volver a conectarse a los recursos compartidos de red con el uso de un componente

Volver a conectarse a los recursos compartidos de red con el uso de un componente : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación