摘要: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資料夾,尚未共用前的樣子。
實際呼叫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 資料夾共用了。
※這邊範例只要共用行態稍作修改,則可以在共用其他類型的東西,詳細資料請參考:
Win32_Share Class
http://msdn2.microsoft.com/en-us/library/aa394435.aspx
結論:
WMI(Windows Management Instrumentation),是個功能強大的東西,以前要達到這些功能免不了的就是呼叫Windows API,除了API 是API... ~"~有點煩,好好的運用WMI,它將可以幫您不少的忙。