程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#映射網絡驅動器 代碼

C#映射網絡驅動器 代碼

編輯:關於C#
 

 [StructLayout(LayoutKind.Sequential)]

public class NETRESOURCE
{

public int dwScope;

public int dwType;

public int dwDisplayType;

public int dwUsage;

public string LocalName;

public string RemoteName;

public string Comment;

public string Provider;

}

 

[DllImport("mpr.dll", EntryPoint = "WNetAddConnection2")]

public static extern uint WNetAddConnection2(

[In] NETRESOURCE lpNetResource,

string lpPassword,

string lpUsername,

uint dwFlags);

 

[DllImport("Mpr.dll")]

public static extern uint WNetCancelConnection2(

string lpName,

uint dwFlags,

bool fForce);

調用例子

NETRESOURCE myNetResource = new NETRESOURCE();

myNetResource.dwScope = 2; //2:RESOURCE_GLOBALNET

myNetResource.dwType = 1; //1:RESOURCETYPE_ANY

myNetResource.dwDisplayType = 3; //3:RESOURCEDISPLAYTYPE_GENERIC

myNetResource.dwUsage = 1; //1: RESOURCEUSAGE_CONNECTABLE

myNetResource.LocalName = "T:";

myNetResource.RemoteName = @"\\10.72.27.22\test";

myNetResource.Provider = null;

uint nret = WNetAddConnection2(myNetResource, "tt", "tt", 0);

 

刪除映射網絡驅動器調用的代碼如下:

uint nret = WNetCancelConnection2( yourNetDriveName, 1, true);

 

 

其中關鍵技術是調用了兩個Windows API函數WNetAddConnection2和WNetCancelConnection2,下面分別加以介紹:

1、WNetAddConnection2

其作用是創建一個同網絡資源的連接,當調用成功時函數返回0。其參數說明如下:

lpNetResource:數據類型是結構NETRESOURCE,該結構中的各個字段對要連接的網絡資源進行了定義,包括遠程計算機共享文件夾的名字(如圖2所示,在“遠程共享文件夾”文本框中的“\\1.1.1.1\share”),以及本地系統為網絡驅動器分配的盤符“X:”,等等;

lpPassword:數據類型為string,該參數是個可選參數,用來設置網絡密碼,對應本程序控件Text3中的文本。如果該參數的值等於vbNullString,則表示采用系統當前登錄用戶的默認密碼;如果是一個空字符串,則表示不需要任何密碼就可訪問網絡資源;

lpUserName:數據類型為string,指定用於網絡連接的用戶名,對應本程序控件Text2中的文本。如果該參數的值等於vbNullString,則表示使用系統當前的登錄用戶名;

dwFlags:數據類型為long,該參數可以設為0,也可以指定常量CONNECT_UPDATE_PROFILE(表示創建永久性的網絡連接)。


2、WNetCancelConnection2

其作用是斷開一個網絡連接,當調用成功時函數返回0。其參數說明如下:

lpName:數據類型是string,用來指定已連接資源的遠程名稱或本地名稱,具體在本文中就是給遠程共享文件夾分配的盤符:“X:”;

dwFlags:數據類型為long,可以取兩個值,0或CONNECT_UPDATE_PROFILE,如果為0,而且建立的網絡連接是永久性連接,則在Windows下次重新啟動時仍會重新連接;

fForce:數據類型為long,如果為True,那麼,即使連接的網絡資源上有正在打開的文件或作業,也強制斷開網絡連接,這樣就會造成數據的丟失、不完整性,建議將該參數的值設為False,如程序中所做。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved