C#通過擷取捷徑指向目標的小樣本觸碰WMI

來源:互聯網
上載者:User

.Net本身沒有封裝對捷徑的操作類,所以要在C#中操作捷徑,需要藉助“外力”。市面上常見的方法是通過Windows Script Host Object Model這個COM組件來完成。這種方法的缺憾是你的程式必須帶上Interop.IWshRuntimeLibrary.dll這個檔案(不過也許可以把這個dll併入exe中再動態載入什麼的)。

Anyway~今天說的是另一個途徑——WMI(Windows Management Instrumentation),這個東東我瞭解不深,只知道很強大,幾乎涉及win系統軟硬體資源的方方面面,使用一種叫WQL的查詢語言(SQL它妹)擷取資源資訊,我也是現學現用,拋磚引玉,告知還不知道的童鞋們除了Win32 API,還有WMI這貨可以解決某些.Net解決不了的問題,所以~WMI大牛擼過即可。

小二~上代碼: 

using System;using System.Management;//需先引用System.Management.dll程式集class Program{    static void Main(string[] args)    {        string scope = @"\\.\root\cimv2";//指定WMI的命名空間,如果不指定,預設就是這貨,不區分大小寫         string wql = @"SELECT Name, Target                       FROM Win32_ShortcutFile                       WHERE Name = 'C:\\Users\\Administrator\\Desktop\\newemax參數.xlsx.lnk'";        //構建WQL語句,我說是SQL它妹不是亂蓋,WQL只有SELECT和WHERE,還有個GROUP,但似乎跟SQL的GROUP BY不是一回事         ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, wql);//構建一個查詢器         ManagementObjectCollection objs = searcher.Get();//調用查詢器的Get方法以執行查詢,並將查詢結果裝入一個對象集合         //遺憾的是該集合不支援[]下標索引,要擷取裡面的對象必須foreach,即使你明確知道裡面只有1個對象,操蛋~        foreach (ManagementBaseObject obj in objs)        {           //通過對象["屬性名稱"]的方式擷取該屬性的值,可以理解為上述WQL語句中SELECT後的欄位名             Console.WriteLine("{0} 指向的目標:{1}", obj["name"], obj["Target"]);        }        Console.ReadKey();    }}

WMI的世界自成一體,也有命名空間,類,對象/執行個體,屬性,方法等概念。我目前傾向用資料庫的結構來理解它:WMI就好比一個SQL執行個體,不同的命名空間就是SQL執行個體上不同的庫,而WMI的類就是庫裡面的表,類的屬性就是表裡的欄位,其餘的方法什麼的我目前還沒概念,就不妄言了。

最後,推薦幾個WMI工具:

1、系統內建。運行wbemtest

2、WMI Explorer。http://www.ks-soft.net/hostmon.eng/wmi/index.htm

3、還是WMI Explorer,只是主人不同,來自指令碼工具大家人戶SAPIEN,但目前在它官網找不到該工具的下載入口,好在這兒可以下:http://www.softpedia.com/get/System/System-Info/SAPIEN-WMI-Explorer.shtml

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.