Se reconnecter à des partages réseau avec l'utilisation d'un composant


Jamais perdu un partage réseau et ne savait pas comment s'y connecter?
Bien avec ce composant vous pouvez rechercher le réseau pour un partage spécifique contenant un fichier ou d'un répertoire et de se reconnecter automatiquement.
REMARQUE: SI VOUS avez DÉJÀ CONNAÎTRE L'EMPLACEMENT DE LA PART que VOUS ne devriez PAS UTILISER CE COMPOSANT DANS les GRANDS RÉSEAUX SERA LENTE. CE N'EST QUE SI VOUS NE CONNAISSEZ PAS L'EMPLACEMENT EXACT, MAIS DE LE LOCALISER À L'AIDE D'UN MARQUEUR TEL QU'UN FICHIER OU UN DOSSIER SPÉCIFIQUE.
ASTUCE: Utilisez la BeforeConnect Événement pour indiquer si une connexion doit être faite.
unité de Reconnecter
interface

& nbsp & nbsp Windows, Messages,StdCtrls, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,FileCtrl
type
& nbsp & nbsp TSIsType=(itDir,itIniFile,itApp,itOther)
& nbsp & nbsp TBeforeConnectEvent=procédure(Propriétaire:TObject AssignPath:string var Accepter:boolean) de l'objet
& nbsp & nbsp TAfterConnectEvent=procédure(Propriétaire:TObject AssignedPath:string) de l'objet
& nbsp & nbsp TOnFail=procédure(Propriétaire:TObject FailMessage:string) de l'objet
& nbsp & nbsp TReconnect = class(TComponent)
& nbsp & nbsp privé
& ! & ! & ! & nbsp { Private declarations }
& ! & ! & ! & nbsp DidAssign:boolean
& ! & ! & ! & nbsp FItemToLookFor:String
& ! & ! & ! & nbsp FUserName:String
& ! & ! & ! & nbsp FPassword:String
& ! & ! & ! & nbsp FLetterToAssign:Char
& ! & ! & ! & nbsp FIsType:TSIsType
& ! & ! & ! & nbsp FOutputLabel:TLabel
& ! & ! & ! & nbsp FFailMessage:String
& ! & ! & ! & nbsp FBeforeConnect:TBeforeConnectEvent
& ! & ! & ! & nbsp FAfterConnect:TAfterConnectEvent
& ! & ! & ! & nbsp FOnFail:TOnFail
& ! & ! & ! & nbsp fonction DoEnum(NetResT:PNetResourceA):integer
& ! & ! & ! & nbsp fonction addbs(g:string):string SURCHARGE
& ! & ! & ! & nbsp fonction addbs(g:chaîne de caractères barre oblique:CHAR):chaîne de SURCHARGE
& ! & ! & ! & nbsp fonction SearchFor(NetResT:NETRESOURCE Chemin,param:string):boolean
& nbsp & nbsp protégé
& ! & ! & ! & nbsp { déclarations Protégées }
& nbsp & nbsp public
& ! & ! & ! & nbsp { déclarations Publiques }
& nbsp & nbsp publié
& ! & ! & ! & nbsp { Publié des déclarations }
& ! & ! & ! & nbsp fonction SearchAndAssign:boolean
& ! & ! & ! & nbsp propriété ItemToLookFor:Chaîne de lire FItemToLookFor écrire FItemToLookFor
& ! & ! & ! & nbsp propriété LetterToAssign:Char lire FLetterToAssign écrire FLetterToAssign
& ! & ! & ! & nbsp propriété IsType:TSIsType lire FIsType écrire FIsType par défaut itDir
& ! & ! & ! & nbsp propriété OutputLabel:TLabel lire FOutputLabel écrire FOutputLabel
& ! & ! & ! & nbsp propriété nom d'utilisateur:Chaîne de lire FUserName écrire FUserName
& ! & ! & ! & nbsp propriété Mot de passe:Chaîne de lecture FPassword écrire FPassword
& ! & ! & ! & nbsp propriété BeforeConnect:TBeforeConnectEvent lire FBeforeConnect écrire FBeforeConnect
& ! & ! & ! & nbsp propriété AfterConnect:TAfterConnectEvent lire FAfterConnect écrire FAfterConnect
& ! & ! & ! & nbsp propriété OnFail:TOnFail lire FOnFail écrire FOnFail
& nbsp & nbsp fin

procédure Register
application

Fonction de TReconnect.addbs(g:chaîne de caractères barre oblique:CHAR):string
begin
& nbsp & nbsp g:=trim(g)
& nbsp & nbsp si g<>'
& nbsp & nbsp puis commencer
& ! & ! & ! & nbsp si g[longueur(g)]<>SLASH
& ! & ! & ! & nbsp alors le résultat:=g SLASH
& ! & ! & ! & nbsp else result:=g
& nbsp & nbsp fin
& nbsp & nbsp else result:=g
fin
fonction de TReconnect.addbs(g:string):string
begin
result:=addbs(g,'\')
fin
fonction de TReconnect.SearchFor(NetResT:NETRESOURCE Chemin,param:string):boolean
var
& nbsp & nbsp suite:boolean
& nbsp & nbsp Existe:boolean
begin
& nbsp & nbsp Existe:=false
& nbsp & nbsp chemin:=addbs(chemin)
& nbsp & nbsp SearchFor:=false
& nbsp & nbsp si IsType=itDir puis
& ! & ! & ! & nbsp Existe:=directoryExists(chemin de param)
& nbsp & nbsp si IsType=itIniFile puis
& ! & ! & ! & nbsp Existe:=FileExists(chemin de param)
& nbsp & nbsp si IsType=itApp puis
& ! & ! & ! & nbsp Existe:=FileExists(chemin de param)
& nbsp & nbsp si IsType=itOther puis
& ! & ! & ! & nbsp Existe:=FileExists(chemin de param)
& nbsp & nbsp si il Existe alors
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp suite:=true
& ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & nbsp si affecté(FBeforeConnect)
& ! & ! & ! & ! & ! & ! & ! & nbsp BeforeConnect(auto,le chemin,la suite)
& ! & ! & ! & ! & ! & nbsp à l'exception de
& ! & ! & ! & ! & ! & ! & ! & nbsp showmessage('Échec d'appel BeforeConnect.')
& ! & ! & ! & ! & ! & nbsp fin

& ! & ! & ! & ! & ! & nbsp si cont
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & nbsp & ! & ! & ! & ! & nbsp NetResT.lpLocalName:=pchar(string(FLetterToAssign) ':')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp WNetAddConnection2A(NetResT,pchar(nom d'utilisateur),pchar(Mot de passe),CONNECT_UPDATE_PROFILE)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp DidAssign:=true
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si affecté(FAfterConnect) puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AfterConnect(auto,chemin d'accès)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp à l'exception de
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp showmessage('Échec d'appel AfterConnect.')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sauf sur E: l'Exception ne
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Showmessage(E. Message)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SearchFor:=true
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
fonction de TReconnect.DoEnum(NetResT:PNetResourceA):integer
var
& nbsp & nbsp EnumH:THandle
& nbsp & nbsp cnt:le cardinal
& nbsp & nbsp buffsize:le cardinal
& nbsp & nbsp NetResBuf:array [0..200] de NETRESOURCE
& nbsp & nbsp res:mot
& nbsp & nbsp j':entier
begin
& nbsp & nbsp si DidAssign puis
& ! & ! & ! & nbsp sortie
& nbsp & nbsp essayer
& nbsp & nbsp cnt:=255
& nbsp & nbsp WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetResT,EnumH)
& nbsp & nbsp res:=0
& nbsp & nbsp while (res=NO_ERROR) ne
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp buffsize:=sizeof(NetResBuf)
& ! & ! & ! & ! & ! & nbsp res:=WNetEnumResource(EnumH,cnt,@NetResBuf,buffsize)
& ! & ! & ! & ! & ! & nbsp for i:=De 0 à cnt-1 do
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si Affecté(OutputLabel)
& ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp OutputLabel.Légende:=NetResBuf[i].lpRemoteName
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp OutputLabel.Actualiser
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si NetResBuf[i].dwDisplayType=RESOURCEDISPLAYTYPE_SHARE puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si pas DidAssign puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & nbsp si SearchFor(NetResBuf[i],string(NetResBuf[i].lpRemoteName),ItemToLookFor)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp résultat:=0
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sortie
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& nbsp & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si (NetResBuf[i].dwScope=RESOURCEUSAGE_CONTAINER)
& ! & ! & ! & ! & ! & ! & ! & nbsp doEnum(@NetResBuf[i])
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp WNetCloseEnum(EnumH)
& nbsp & nbsp résultat:=1
& nbsp & nbsp sauf sur E: l'Exception ne
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp FFailMessage:=E. Message
& ! & ! & ! & ! & ! & nbsp si Affecté(FOnFail)
& ! & ! & ! & ! & ! & ! & ! & nbsp OnFail(Propriétaire,FFailMessage)
& ! & ! & ! & ! & ! & nbsp result:=0
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
fin
fonction de TReconnect.SearchAndAssign:boolean
begin
& nbsp & nbsp DidAssign:=false
& nbsp & nbsp DoEnum(nil)
& nbsp & nbsp result:=true
fin
procédure Register
begin
& nbsp & nbsp RegisterComponents('VNPVcls', [TReconnect])
fin
à la fin.









Se reconnecter a des partages reseau avec l'utilisation d'un composant


Se reconnecter a des partages reseau avec l'utilisation d'un composant : Plusieurs milliers de conseils pour vous faciliter la vie.


Jamais perdu un partage reseau et ne savait pas comment s'y connecter?
Bien avec ce composant vous pouvez rechercher le reseau pour un partage specifique contenant un fichier ou d'un repertoire et de se reconnecter automatiquement.
REMARQUE: SI VOUS avez DEJA CONNAÎTRE L'EMPLACEMENT DE LA PART que VOUS ne devriez PAS UTILISER CE COMPOSANT DANS les GRANDS RESEAUX SERA LENTE. CE N'EST QUE SI VOUS NE CONNAISSEZ PAS L'EMPLACEMENT EXACT, MAIS DE LE LOCALISER A L'AIDE D'UN MARQUEUR TEL QU'UN FICHIER OU UN DOSSIER SPECIFIQUE.
ASTUCE: Utilisez la BeforeConnect Evenement pour indiquer si une connexion doit etre faite.
unite de Reconnecter
interface

& nbsp & nbsp Windows, Messages,StdCtrls, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,FileCtrl
type
& nbsp & nbsp TSIsType=(itDir,itIniFile,itApp,itOther)
& nbsp & nbsp TBeforeConnectEvent=procedure(Proprietaire:TObject AssignPath:string var Accepter:boolean) de l'objet
& nbsp & nbsp TAfterConnectEvent=procedure(Proprietaire:TObject AssignedPath:string) de l'objet
& nbsp & nbsp TOnFail=procedure(Proprietaire:TObject FailMessage:string) de l'objet
& nbsp & nbsp TReconnect = class(TComponent)
& nbsp & nbsp prive
& ! & ! & ! & nbsp { Private declarations }
& ! & ! & ! & nbsp DidAssign:boolean
& ! & ! & ! & nbsp FItemToLookFor:String
& ! & ! & ! & nbsp FUserName:String
& ! & ! & ! & nbsp FPassword:String
& ! & ! & ! & nbsp FLetterToAssign:Char
& ! & ! & ! & nbsp FIsType:TSIsType
& ! & ! & ! & nbsp FOutputLabel:TLabel
& ! & ! & ! & nbsp FFailMessage:String
& ! & ! & ! & nbsp FBeforeConnect:TBeforeConnectEvent
& ! & ! & ! & nbsp FAfterConnect:TAfterConnectEvent
& ! & ! & ! & nbsp FOnFail:TOnFail
& ! & ! & ! & nbsp fonction DoEnum(NetResT:PNetResourceA):integer
& ! & ! & ! & nbsp fonction addbs(g:string):string SURCHARGE
& ! & ! & ! & nbsp fonction addbs(g:chaîne de caracteres barre oblique:CHAR):chaîne de SURCHARGE
& ! & ! & ! & nbsp fonction SearchFor(NetResT:NETRESOURCE Chemin,param:string):boolean
& nbsp & nbsp protege
& ! & ! & ! & nbsp { declarations Protegees }
& nbsp & nbsp public
& ! & ! & ! & nbsp { declarations Publiques }
& nbsp & nbsp publie
& ! & ! & ! & nbsp { Publie des declarations }
& ! & ! & ! & nbsp fonction SearchAndAssign:boolean
& ! & ! & ! & nbsp propriete ItemToLookFor:Chaîne de lire FItemToLookFor ecrire FItemToLookFor
& ! & ! & ! & nbsp propriete LetterToAssign:Char lire FLetterToAssign ecrire FLetterToAssign
& ! & ! & ! & nbsp propriete IsType:TSIsType lire FIsType ecrire FIsType par defaut itDir
& ! & ! & ! & nbsp propriete OutputLabel:TLabel lire FOutputLabel ecrire FOutputLabel
& ! & ! & ! & nbsp propriete nom d'utilisateur:Chaîne de lire FUserName ecrire FUserName
& ! & ! & ! & nbsp propriete Mot de passe:Chaîne de lecture FPassword ecrire FPassword
& ! & ! & ! & nbsp propriete BeforeConnect:TBeforeConnectEvent lire FBeforeConnect ecrire FBeforeConnect
& ! & ! & ! & nbsp propriete AfterConnect:TAfterConnectEvent lire FAfterConnect ecrire FAfterConnect
& ! & ! & ! & nbsp propriete OnFail:TOnFail lire FOnFail ecrire FOnFail
& nbsp & nbsp fin

procedure Register
application

Fonction de TReconnect.addbs(g:chaîne de caracteres barre oblique:CHAR):string
begin
& nbsp & nbsp g:=trim(g)
& nbsp & nbsp si g<>'
& nbsp & nbsp puis commencer
& ! & ! & ! & nbsp si g[longueur(g)]<>SLASH
& ! & ! & ! & nbsp alors le resultat:=g SLASH
& ! & ! & ! & nbsp else result:=g
& nbsp & nbsp fin
& nbsp & nbsp else result:=g
fin
fonction de TReconnect.addbs(g:string):string
begin
result:=addbs(g,'\')
fin
fonction de TReconnect.SearchFor(NetResT:NETRESOURCE Chemin,param:string):boolean
var
& nbsp & nbsp suite:boolean
& nbsp & nbsp Existe:boolean
begin
& nbsp & nbsp Existe:=false
& nbsp & nbsp chemin:=addbs(chemin)
& nbsp & nbsp SearchFor:=false
& nbsp & nbsp si IsType=itDir puis
& ! & ! & ! & nbsp Existe:=directoryExists(chemin de param)
& nbsp & nbsp si IsType=itIniFile puis
& ! & ! & ! & nbsp Existe:=FileExists(chemin de param)
& nbsp & nbsp si IsType=itApp puis
& ! & ! & ! & nbsp Existe:=FileExists(chemin de param)
& nbsp & nbsp si IsType=itOther puis
& ! & ! & ! & nbsp Existe:=FileExists(chemin de param)
& nbsp & nbsp si il Existe alors
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp suite:=true
& ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & nbsp si affecte(FBeforeConnect)
& ! & ! & ! & ! & ! & ! & ! & nbsp BeforeConnect(auto,le chemin,la suite)
& ! & ! & ! & ! & ! & nbsp a l'exception de
& ! & ! & ! & ! & ! & ! & ! & nbsp showmessage('Echec d'appel BeforeConnect.')
& ! & ! & ! & ! & ! & nbsp fin

& ! & ! & ! & ! & ! & nbsp si cont
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & nbsp & ! & ! & ! & ! & nbsp NetResT.lpLocalName:=pchar(string(FLetterToAssign) ':')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp WNetAddConnection2A(NetResT,pchar(nom d'utilisateur),pchar(Mot de passe),CONNECT_UPDATE_PROFILE)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp DidAssign:=true
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si affecte(FAfterConnect) puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AfterConnect(auto,chemin d'acces)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp a l'exception de
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp showmessage('Echec d'appel AfterConnect.')
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sauf sur E: l'Exception ne
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Showmessage(E. Message)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp SearchFor:=true
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
fin
fonction de TReconnect.DoEnum(NetResT:PNetResourceA):integer
var
& nbsp & nbsp EnumH:THandle
& nbsp & nbsp cnt:le cardinal
& nbsp & nbsp buffsize:le cardinal
& nbsp & nbsp NetResBuf:array [0..200] de NETRESOURCE
& nbsp & nbsp res:mot
& nbsp & nbsp j':entier
begin
& nbsp & nbsp si DidAssign puis
& ! & ! & ! & nbsp sortie
& nbsp & nbsp essayer
& nbsp & nbsp cnt:=255
& nbsp & nbsp WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetResT,EnumH)
& nbsp & nbsp res:=0
& nbsp & nbsp while (res=NO_ERROR) ne
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp buffsize:=sizeof(NetResBuf)
& ! & ! & ! & ! & ! & nbsp res:=WNetEnumResource(EnumH,cnt,@NetResBuf,buffsize)
& ! & ! & ! & ! & ! & nbsp for i:=De 0 a cnt-1 do
& ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si Affecte(OutputLabel)
& ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp OutputLabel.Legende:=NetResBuf[i].lpRemoteName
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp OutputLabel.Actualiser
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si NetResBuf[i].dwDisplayType=RESOURCEDISPLAYTYPE_SHARE puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si pas DidAssign puis
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp & ! & ! & ! & ! & nbsp si SearchFor(NetResBuf[i],string(NetResBuf[i].lpRemoteName),ItemToLookFor)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp resultat:=0
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp sortie
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& nbsp & nbsp & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si (NetResBuf[i].dwScope=RESOURCEUSAGE_CONTAINER)
& ! & ! & ! & ! & ! & ! & ! & nbsp doEnum(@NetResBuf[i])
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp fin
& nbsp & nbsp WNetCloseEnum(EnumH)
& nbsp & nbsp resultat:=1
& nbsp & nbsp sauf sur E: l'Exception ne
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp FFailMessage:=E. Message
& ! & ! & ! & ! & ! & nbsp si Affecte(FOnFail)
& ! & ! & ! & ! & ! & ! & ! & nbsp OnFail(Proprietaire,FFailMessage)
& ! & ! & ! & ! & ! & nbsp result:=0
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
fin
fonction de TReconnect.SearchAndAssign:boolean
begin
& nbsp & nbsp DidAssign:=false
& nbsp & nbsp DoEnum(nil)
& nbsp & nbsp result:=true
fin
procedure Register
begin
& nbsp & nbsp RegisterComponents('VNPVcls', [TReconnect])
fin
a la fin.


Se reconnecter à des partages réseau avec l'utilisation d'un composant

Se reconnecter à des partages réseau avec l'utilisation d'un composant : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation