Wiederverbinden mit Netzwerkfreigaben mit dem Einsatz einer Komponente


Immer verloren eine vernetzte teilen und, wusste nicht wie eine Verbindung her?
Gut mit dieser Komponente können Sie im Netzwerk einen bestimmten Anteil, enthält eine Datei oder ein Verzeichnis zu suchen und automatisch wiederherstellen.
HINWEIS: WENN SIE BEREITS, DEN SPEICHERORT DER FREIGABE WISSEN SOLLTEN SIE DIESE KOMPONENTE VERWENDEN, DA IN GROßEN NETZWERKEN LANGSAM SEIN. DIES IST NUR DANN, WENN SIE DIE GENAUE LAGE WEIß NICHT, ABER KÖNNEN ES MIT EINEM MARKER WIE Z. B. EINE BESTIMMTE DATEI ODER EINEN ORDNER SUCHEN.
Tipp: Verwenden Sie das BeforeConnect-Ereignis angeben, ob eine Verbindung hergestellt werden soll.
Reconnect Einheit;
Schnittstelle
verwendet
Windows, Nachrichten, StdCtrls, SysUtils, Klassen, Graphics, Steuerelemente, Formulare, Dialoge, FileCtrl;
Typ
TSIsType=(itDir,itIniFile,itApp,itOther);
TBeforeConnectEvent = Prozedur (Besitzer: TObject; AssignPath:string; Var Accept: Boolean) des Objekts;
TAfterConnectEvent = Prozedur (Besitzer: TObject; AssignedPath:string) des Objekts;
TOnFail = Prozedur (Besitzer: TObject; FailMessage:string) des Objekts;
TReconnect = class(TComponent)
Private
{Private Deklarationen}
DidAssign:boolean;
FItemToLookFor:String;
FUserName:String;
FPassword:String;
FLetterToAssign:Char;
FIsType:TSIsType;
FOutputLabel:TLabel;
FFailMessage:String;
FBeforeConnect:TBeforeConnectEvent;
FAfterConnect:TAfterConnectEvent;
FOnFail:TOnFail;
Funktion DoEnum(NetResT:PNetResourceA):integer;
Funktion Addbs(g:string):string; ÜBERLADUNG;
Funktion Addbs (G:string; Slash:Char): string; ÜBERLADEN;
Funktion WörternWenn (NetResT:NETRESOURCE; Pfad, Param:string): boolean;
geschützt
{Protected Deklarationen}
öffentliche
{Public Deklarationen}
veröffentlicht
{Veröffentlichten Erklärungen}
Funktion SearchAndAssign:boolean;
Eigenschaft ItemToLookFor:String lesen FItemToLookFor schreiben FItemToLookFor;
Eigenschaft LetterToAssign:Char lesen FLetterToAssign schreiben FLetterToAssign;
Eigenschaft IsType:TSIsType lesen FIsType schreiben FIsType Standard ItDir;
Eigenschaft OutputLabel:TLabel lesen FOutputLabel schreiben FOutputLabel;
Eigenschaft UserName:String lesen FUserName Write FUserName;
Passwort:-EigenschaftZeichenfolge lesen fKennwort schreiben fKennwort;
Eigenschaft BeforeConnect:TBeforeConnectEvent lesen FBeforeConnect schreiben FBeforeConnect;
Eigenschaft AfterConnect:TAfterConnectEvent lesen FAfterConnect schreiben FAfterConnect;
Eigenschaft OnFail:TOnFail lesen FOnFail schreiben FOnFail;
Ende;

Register des Verfahrens;
Umsetzung

Funktion TReconnect.addbs (G:string; Slash:Char): string;
beginnen
g:=Trim(g);
Wenn g-<> cm
dann beginnen
Wenn g[length(g)] <> Schrägstrich
dann führen: = g + SLASH
anderes Ergebnis: = g;
Ende
anderes Ergebnis: = g;
Ende;
Funktion TReconnect.addbs(g:string):string;
beginnen
result:=addbs(g,'\');
Ende;
Funktion TReconnect.SearchFor (NetResT:NETRESOURCE; Pfad, Param:string): boolean;
var
CONT:Boolean;
Vorhanden ist: boolean;
beginnen
Vorhanden ist: = False;
Path:=addbs(path);
WörternWenn: = False;
Wenn IsType = ItDir then
Exists:=directoryExists(Path+param);
Wenn IsType = ItIniFile then
Exists:=FileExists(Path+param);
Wenn IsType = ItApp then
Exists:=FileExists(Path+param);
Wenn IsType = ItOther then
Exists:=FileExists(Path+param);
Wenn vorhanden ist, dann
beginnen
CONT: = True;
versuchen Sie
Wenn assigned(FBeforeConnect) dann
BeforeConnect(self,path,cont);
mit Ausnahme von
ShowMessage ('Failed aufrufen, BeforeConnect.');
Ende;

Wenn dann Cont
beginnen
versuchen Sie
NetResT.lpLocalName:=pchar(string(FLetterToAssign)+':');
WNetAddConnection2A(NetResT,pchar(UserName),pchar(Password),CONNECT_UPDATE_PROFILE);
DidAssign: = True;
versuchen Sie
Wenn assigned(FAfterConnect) dann
AfterConnect(self,path);
mit Ausnahme von
ShowMessage ('Failed aufrufen, AfterConnect.');
Ende;
außer auf E: Ausnahme Do
ShowMessage(E.Message);
Ende;
WörternWenn: = True;
Ende;
Ende;
Ende;
Funktion TReconnect.DoEnum(NetResT:PNetResourceA):integer;
var
EnumH:THandle;
CNT:Cardinal;
Buffsize:Cardinal;
NetResBuf:array [0..200] von NETRESOURCE;
Res: Wort;
I:Integer;
beginnen
Wenn DidAssign dann
Ausfahrt;
versuchen Sie
CNT: = 255;
WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetResT,EnumH);
Res: = 0;
während (Res = NO_ERROR) tun
beginnen
buffsize:=sizeof(NetResBuf);
res:=WNetEnumResource(EnumH,CNT,@NetResBuf,buffsize) aus;
für i: = 0 Cnt-1 do
beginnen
Wenn Assigned(OutputLabel) dann
beginnen
OutputLabel.Caption:=NetResBuf[i].lpRemoteName;
OutputLabel.Refresh;
Ende;
Wenn NetResBuf [i] .dwDisplayType = RESOURCEDISPLAYTYPE_SHARE then
beginnen
Wenn nicht dann DidAssign
Wenn SearchFor(NetResBuf[i],string(NetResBuf[i].lpRemoteName),ItemToLookFor) dann
beginnen
Ergebnis: = 0;
Ausfahrt;
Ende;
Ende;
Wenn (NetResBuf[i].dwScope=RESOURCEUSAGE_CONTAINER) dann
doEnum(@NetResBuf[i]) aus;
Ende;
Ende;
WNetCloseEnum(EnumH);
Ergebnis: = 1;
außer auf E: Ausnahme Do
beginnen
FFailMessage:=E.Message;
Wenn Assigned(FOnFail) dann
OnFail(Owner,FFailMessage);
Ergebnis: = 0;
Ende;
Ende;
Ende;
Funktion TReconnect.SearchAndAssign:boolean;
beginnen
DidAssign: = False;
DoEnum(nil);
Ergebnis: = True;
Ende;
Register des Verfahrens;
beginnen
RegisterComponents ('VNPVcls', [TReconnect]);
Ende;
Ende.









Wiederverbinden mit Netzwerkfreigaben mit dem Einsatz einer Komponente


Wiederverbinden mit Netzwerkfreigaben mit dem Einsatz einer Komponente : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Immer verloren eine vernetzte teilen und, wusste nicht wie eine Verbindung her?
Gut mit dieser Komponente können Sie im Netzwerk einen bestimmten Anteil, enthält eine Datei oder ein Verzeichnis zu suchen und automatisch wiederherstellen.
HINWEIS: WENN SIE BEREITS, DEN SPEICHERORT DER FREIGABE WISSEN SOLLTEN SIE DIESE KOMPONENTE VERWENDEN, DA IN GROßEN NETZWERKEN LANGSAM SEIN. DIES IST NUR DANN, WENN SIE DIE GENAUE LAGE WEIß NICHT, ABER KÖNNEN ES MIT EINEM MARKER WIE Z. B. EINE BESTIMMTE DATEI ODER EINEN ORDNER SUCHEN.
Tipp: Verwenden Sie das BeforeConnect-Ereignis angeben, ob eine Verbindung hergestellt werden soll.
Reconnect Einheit;
Schnittstelle
verwendet
Windows, Nachrichten, StdCtrls, SysUtils, Klassen, Graphics, Steuerelemente, Formulare, Dialoge, FileCtrl;
Typ
TSIsType=(itDir,itIniFile,itApp,itOther);
TBeforeConnectEvent = Prozedur (Besitzer: TObject; AssignPath:string; Var Accept: Boolean) des Objekts;
TAfterConnectEvent = Prozedur (Besitzer: TObject; AssignedPath:string) des Objekts;
TOnFail = Prozedur (Besitzer: TObject; FailMessage:string) des Objekts;
TReconnect = class(TComponent)
Private
{Private Deklarationen}
DidAssign:boolean;
FItemToLookFor:String;
FUserName:String;
FPassword:String;
FLetterToAssign:Char;
FIsType:TSIsType;
FOutputLabel:TLabel;
FFailMessage:String;
FBeforeConnect:TBeforeConnectEvent;
FAfterConnect:TAfterConnectEvent;
FOnFail:TOnFail;
Funktion DoEnum(NetResT:PNetResourceA):integer;
Funktion Addbs(g:string):string; ÜBERLADUNG;
Funktion Addbs (G:string; Slash:Char): string; ÜBERLADEN;
Funktion WörternWenn (NetResT:NETRESOURCE; Pfad, Param:string): boolean;
geschützt
{Protected Deklarationen}
öffentliche
{Public Deklarationen}
veröffentlicht
{Veröffentlichten Erklärungen}
Funktion SearchAndAssign:boolean;
Eigenschaft ItemToLookFor:String lesen FItemToLookFor schreiben FItemToLookFor;
Eigenschaft LetterToAssign:Char lesen FLetterToAssign schreiben FLetterToAssign;
Eigenschaft IsType:TSIsType lesen FIsType schreiben FIsType Standard ItDir;
Eigenschaft OutputLabel:TLabel lesen FOutputLabel schreiben FOutputLabel;
Eigenschaft UserName:String lesen FUserName Write FUserName;
Passwort:-EigenschaftZeichenfolge lesen fKennwort schreiben fKennwort;
Eigenschaft BeforeConnect:TBeforeConnectEvent lesen FBeforeConnect schreiben FBeforeConnect;
Eigenschaft AfterConnect:TAfterConnectEvent lesen FAfterConnect schreiben FAfterConnect;
Eigenschaft OnFail:TOnFail lesen FOnFail schreiben FOnFail;
Ende;

Register des Verfahrens;
Umsetzung

Funktion TReconnect.addbs (G:string; Slash:Char): string;
beginnen
g:=Trim(g);
Wenn g-<> cm
dann beginnen
Wenn g[length(g)] <> Schrägstrich
dann führen: = g + SLASH
anderes Ergebnis: = g;
Ende
anderes Ergebnis: = g;
Ende;
Funktion TReconnect.addbs(g:string):string;
beginnen
result:=addbs(g,'\');
Ende;
Funktion TReconnect.SearchFor (NetResT:NETRESOURCE; Pfad, Param:string): boolean;
var
CONT:Boolean;
Vorhanden ist: boolean;
beginnen
Vorhanden ist: = False;
Path:=addbs(path);
WörternWenn: = False;
Wenn IsType = ItDir then
Exists:=directoryExists(Path+param);
Wenn IsType = ItIniFile then
Exists:=FileExists(Path+param);
Wenn IsType = ItApp then
Exists:=FileExists(Path+param);
Wenn IsType = ItOther then
Exists:=FileExists(Path+param);
Wenn vorhanden ist, dann
beginnen
CONT: = True;
versuchen Sie
Wenn assigned(FBeforeConnect) dann
BeforeConnect(self,path,cont);
mit Ausnahme von
ShowMessage ('Failed aufrufen, BeforeConnect.');
Ende;

Wenn dann Cont
beginnen
versuchen Sie
NetResT.lpLocalName:=pchar(string(FLetterToAssign)+':');
WNetAddConnection2A(NetResT,pchar(UserName),pchar(Password),CONNECT_UPDATE_PROFILE);
DidAssign: = True;
versuchen Sie
Wenn assigned(FAfterConnect) dann
AfterConnect(self,path);
mit Ausnahme von
ShowMessage ('Failed aufrufen, AfterConnect.');
Ende;
außer auf E: Ausnahme Do
ShowMessage(E.Message);
Ende;
WörternWenn: = True;
Ende;
Ende;
Ende;
Funktion TReconnect.DoEnum(NetResT:PNetResourceA):integer;
var
EnumH:THandle;
CNT:Cardinal;
Buffsize:Cardinal;
NetResBuf:array [0..200] von NETRESOURCE;
Res: Wort;
I:Integer;
beginnen
Wenn DidAssign dann
Ausfahrt;
versuchen Sie
CNT: = 255;
WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetResT,EnumH);
Res: = 0;
während (Res = NO_ERROR) tun
beginnen
buffsize:=sizeof(NetResBuf);
res:=WNetEnumResource(EnumH,CNT,@NetResBuf,buffsize) aus;
für i: = 0 Cnt-1 do
beginnen
Wenn Assigned(OutputLabel) dann
beginnen
OutputLabel.Caption:=NetResBuf[i].lpRemoteName;
OutputLabel.Refresh;
Ende;
Wenn NetResBuf [i] .dwDisplayType = RESOURCEDISPLAYTYPE_SHARE then
beginnen
Wenn nicht dann DidAssign
Wenn SearchFor(NetResBuf[i],string(NetResBuf[i].lpRemoteName),ItemToLookFor) dann
beginnen
Ergebnis: = 0;
Ausfahrt;
Ende;
Ende;
Wenn (NetResBuf[i].dwScope=RESOURCEUSAGE_CONTAINER) dann
doEnum(@NetResBuf[i]) aus;
Ende;
Ende;
WNetCloseEnum(EnumH);
Ergebnis: = 1;
außer auf E: Ausnahme Do
beginnen
FFailMessage:=E.Message;
Wenn Assigned(FOnFail) dann
OnFail(Owner,FFailMessage);
Ergebnis: = 0;
Ende;
Ende;
Ende;
Funktion TReconnect.SearchAndAssign:boolean;
beginnen
DidAssign: = False;
DoEnum(nil);
Ergebnis: = True;
Ende;
Register des Verfahrens;
beginnen
RegisterComponents ('VNPVcls', [TReconnect]);
Ende;
Ende.


Wiederverbinden mit Netzwerkfreigaben mit dem Einsatz einer Komponente

Wiederverbinden mit Netzwerkfreigaben mit dem Einsatz einer Komponente : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Wiederverbinden mit Netzwerkfreigaben mit dem Einsatz einer Komponente
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung