C# - Hálózati meghajtók csatlakoztatása

Hálózati meghajtó-műveletek metódusai 1. rész

forráskód letöltése
A Windows API metódusok segítségével kiegészíthetjük a .NET Framework osztályai által nyújtott lehetőségeket, hiszen az osztályok metódusaival nem végezhető el minden funkció. Most induló cikksorozatunkban is egy csokor, a helyi hálózatok témakörébe csoportosítható metódus felhasználásával ismerkedhetünk meg. A metódusok segítségével megosztott hálózati erőforrásokat csatlakoztathatunk rendszerünkhöz, illetve információkat kérdezhetünk le ezekről az eszközökről.
A metódusok a MPR.DLL állományban kaptak helyet. Cikkünkben azokkal a metódusokkal foglalkozunk elsőként, melyekkel a helyi hálózat valamely munkaállomásán megosztott mappát, vagy egyéb erőforrást lehet csatlakoztatni a metódust hívó rendszerhez, vagy erőforrásokat lehet leválasztani onnan. Lássuk melyek ezek a metódusok, és hogyan kell őket paraméterezni.
WNetAddConnection metódus
WNetAddConnection
Osztály:
int WNetAddConnection(
string RemoteName, stringPassword, string Localname
)
A metódus a 16-bites rendszerekkel való kompatibilitás jegyében létezik még a DLL-ben, és a megosztott erőforrás csatlakoztatására szolgál.
Paraméterek
string RemoteName
A csatlakoztatásra váró megosztás, melyet karakterlánc formájában kell megadnunk következő módon: \\kiszolgáló\megosztás.
stringPassword
A művelet elvégzéséhez szükséges jelszó. Windows Me/98/95 rendszerek esetében NULL értéket, vagy üres karakterliterált kell használnunk.
string Localname
Az a betűjel, mellyel a hívó rendszerben azonosítani kívánjuk a csatlakoztatott megosztást, például F:.
Visszatérési érték
Ha a művelet sikerült, akkor a visszatérési érték nulla. Ellenkező esetben valamilyen egész szám-konstans. Például ez a szám 85, ha a megosztás már csatlakoztatva van.
WNetAddConnection2 metódus
A mellékelt példában használjuk a WNetAddConnection2 és a WNetAddConnection3 metódusokat egyaránt, de használatuk módja szinte megegyezik, így csak az egyik deklarációt közöljük.
WNetAddConnection2
Osztály:
int WNetAddConnection2(
NETRESOURCE NetResource, stringPassword, string UserName, UInt32 Flags
)
A megosztott erőforrás csatlakoztatására szolgál. A WNetAddConnection3 metódus esetében meg kell adni a hívóalkalmazás ablakának kezelőjét is.
Paraméterek
NETRESOURCE NetResource
A NETRESOURCE nevű struktúrában kell megadnunk a megosztott meghajtó adatait.
stringPassword
A művelet elvégzéséhez szükséges jelszó. Windows Me/98/95 rendszerek esetében NULL értéket, vagy üres karakterliterált kell használnunk.
string UserName
A művelet elvégzéséhez szükséges felhasználónév. Windows Me/98/95 rendszerek esetében NULL értéket, vagy üres karakterliterált kell használnunk.
UInt32 Flags
Műveleti opció, mely megadja a művelet elvégzésének módját. Amennyiben például itt a CONNECT_COMMANDLINE konstanst adjuk meg, akkor a Windows XP rendszerekben felbukkan egy, a felhasználói azonosítást kérő ablak.
Visszatérési érték
A sikeres műveletvégzés eredménye nulla.
WNetCancelConnection metódus
WNetCancelConnection
Osztály:
int WNetCancelConnection(
string Name, boolForce
)
A csatlakoztatott hálózati megosztás választható le a metódussal.
Paraméterek
string Name
A leválasztandó meghajtó neve, betűjele.
boolForce
Megadható, hogy mi történjen abban az esetben, ha a csatlakoztatott és éppen leválasztandó meghajtón nyitva van egy állomány. Amennyiben az érték FALSE, akkor a művelet ebben a szituációban megszakad.
Visszatérési érték
A sikeres műveletvégzés eredménye nulla.
A mellékelt példában – amennyiben munkaállomásunk egy helyi hálózat része – van módunk kipróbálni a megosztott erőforrás csatlakoztatását, és leválasztását. Ehhez meg kell adnunk a megosztás elérési útját, például: \\workstation\mappa, és a meghajtó betűjelét, melyen keresztül elérjük a saját rendszerünkben, például: F:.
Lássuk hogyan hívható meg a WNetAddConnection metódus. Itt nincs komplikáció, hiszen a szövegmezők értékeit megadjuk a metódus paramétereiként.
int res = Win32.WNetAddConnection(textBox1.Text, "", textBox2.Text);
A WNetAddConnection2 metódus esetén már példányosítanunk kell a Win32 osztályban deklarált struktúrát.
Win32.NETRESOURCE resource = new Win32.NETRESOURCE();
Meg kell adnunk a szükséges információkat a struktúra mezőiben, majd meghívni a metódust.
resource.RType = (int)Win32.Constants.RESOURCETYPE_DISK;
resource.LocalName = textBox2.Text;
resource.Provider = "";
resource.RemoteName = textBox1.Text;
res = Win32.WNetAddConnection2(resource, null, null, 0);
A struktúra első mezője a típust tartalmazza, melyet a Win32 osztályban létrehozott konstans enumerátorból választunk ki.
A kapcsolat felépítésének eredményeképpen az Intézőben meg is tekinthetjük a csatlakoztatott meghajtót.
A kapcsolat megszakítása a metódusok valamelyikével igen egyszerűen megoldható.

res = Win32.WNetCancelConnection(textBox2.Text, checkBox1.Checked);

Hálózati meghajtó-műveletek metódusai cikksorozat

Hálózati meghajtók csatlakoztatása - Hálózati meghajtó-műveletek metódusai 1. rész