Visual C# 透過WMI實作資料夾共享功能

摘要:Visual C# 透過WMI實作資料夾共享功能

各位好,好久不見,筆者最近再忙著一個網站專案所以都沒有時間上來寫文章,今天要給各位帶來一篇,Visual C#使用WMI來實現資料夾共享。

  • 剛剛說到了要用到WMI來實作,內行的您一定知道要先把【System.Management】加入參考,並使用【System.Management】命名空間。

    讓我們來看看資料共享的副程式

    1 private void ShareResource(string ShareName, string Description, string FolderPath)

    2         {

    3             ManagementClass mClass = new ManagementClass("Win32_Share");

    4             ManagementBaseObject mBaseObj_in = mClass.GetMethodParameters("Create");

    5             ManagementBaseObject mBaseOjb_out;

    6 

    7 

    8             mBaseObj_in["Name"] = ShareName;            //共用名稱

    9             mBaseObj_in["Description"] = Description;    //詳細資訊

   10             mBaseObj_in["Path"] = FolderPath;            //資料夾位置

   11             mBaseObj_in["Type"] = 0x0;                   //共用類型

   12 

   13             /*  分享其他型態的參數

   14             * 

   15             *  DISK_DRIVE = 0x0

   16             *  PRINT_QUEUE = 0x1

   17             *  DEVICE = 0x2

   18             *  IPC = 0x3

   19             *  DISK_DRIVE_ADMIN = 0x80000000

   20             *  PRINT_QUEUE_ADMIN = 0x80000001

   21             *  DEVICE_ADMIN = 0x80000002

   22             *  IPC_ADMIN = 0x8000003

   23             */

   24 

   25             //檢查看看,是否叫用成功

   26             mBaseOjb_out = mClass.InvokeMethod("Create", mBaseObj_in, null);

   27 

   28             if ((uint)(mBaseOjb_out.Properties["ReturnValue"].Value) != 0)

   29             {

   30                 throw new Exception("無法共享資料夾");

   31             }

   32         }

 

 

   我們先來看看C:\Innovation.NET資料夾,尚未共用前的樣子。

 

   untitled

 

    實際呼叫ShareResource副程式,並將C:\Innovation.NET資料夾建立共用。

    1         private void button1_Click(object sender, EventArgs e)

    2         {

    3             ShareResource("Innovation.NET", "Innovation.NET Share", @"C:\Innovation.NET");

    4         }

    瞧!! 我們成功把Innovation.NET 資料夾共用了。

   untitled

untitled 

 ※這邊範例只要共用行態稍作修改,則可以在共用其他類型的東西,詳細資料請參考:

    Win32_Share Class

    http://msdn2.microsoft.com/en-us/library/aa394435.aspx

結論:

WMI(Windows Management Instrumentation),是個功能強大的東西,以前要達到這些功能免不了的就是呼叫Windows API,除了API 是API... ~"~有點煩,好好的運用WMI,它將可以幫您不少的忙。