最近更新|軟件分類|軟件專題|軟件排行|手機(jī)版|軟件發(fā)布WMI Code Creator中文版 v1.0 綠色版
您的位置:首頁>編程開發(fā) > 編程工具>WMI Code Creator中文版 v1.0 綠色版

WMI Code Creator中文版 v1.0 綠色版WMI代碼生成器

網(wǎng)友評(píng)分:

相關(guān)軟件

軟件介紹

WMI Code Creator中文版是一款非常專業(yè)的WMI代碼生成器,而且利用WMI代碼生成器可以執(zhí)行查詢或者執(zhí)行一個(gè)方法等,下面小編為大家?guī)頋h化版,歡迎下載使用!

軟件介紹

WMI Code Creator是由微軟推出的一款功能強(qiáng)大的WMI代碼生成器,利用WMI代碼生成器可以執(zhí)行查詢或者執(zhí)行一個(gè)方法等,還可以查看當(dāng)前或者遠(yuǎn)程電腦上的命名空間以及其下的類,并且還可以生成相關(guān)的代碼,支持生成的代碼類型包括VBS、C#及VB.NET,默認(rèn)生成VBS代碼,可生成使用WMI獲取管理信息或執(zhí)行管理任務(wù)的代碼,功能非常強(qiáng)大。

使用方法

WMI Code Creator中文版

利用WMI代碼生成器可以執(zhí)行查詢或者執(zhí)行一個(gè)方法等,還可以查看當(dāng)前或者遠(yuǎn)程電腦上的命名空間以及其下的類,并且還可以生成相關(guān)的代碼(不然就不叫WMI代碼生成器了),支持生成的代碼類型包括VBS、C#及VB.NET,默認(rèn)生成的代碼是VBS。

例如要想查詢BIOS的相關(guān)信息,可以在命名空間處選擇rootCIMV2(這個(gè)是默認(rèn)選擇),然后在全部類處選擇Win32_BIOS,這時(shí)就會(huì)列出Win32_BIOS類的所有屬性,可以選擇其中一個(gè)屬性然后點(diǎn)擊“查詢屬性值”,就會(huì)在下面的文本框中列出該屬性的值,如下圖所示:

WMI Code Creator中文版

從上圖中可以看出本人的本本BIOS是DELL的,在右側(cè)生成代碼處可以看到相關(guān)的VBS代碼,如果看默認(rèn)生成的VBS代碼不爽可以換成C#或者VB.NET的,具體操作就是在“編程語言”菜單處選擇,如下圖所示:

WMI Code Creator中文版

下面是選擇目標(biāo)編程語言為C#后生成的代碼,如下圖所示:

WMI Code Creator中文版

WMI代碼生成器默認(rèn)是連接到本地機(jī)器,不過也提供了連接遠(yuǎn)程主機(jī)或者主機(jī)組的功能,這個(gè)可以在目標(biāo)機(jī)器中選擇。如下圖所示。

WMI Code Creator中文版

由于本人已經(jīng)將常用操作部分漢化了(可能不是十分準(zhǔn)確),所以操作起來相對(duì)較容易上手。

說明:由于在后臺(tái)多處使用了線程池來進(jìn)行操作,所以在執(zhí)行一些耗時(shí)的操作而沒有等待完全結(jié)束退出軟件時(shí)會(huì)報(bào)異常。另外,在漢化的過程中有些不常用部分并沒有完全漢化,并且有些地方翻譯不是十分準(zhǔn)確,敬請(qǐng)?jiān)彛褂帽拒浖r(shí)結(jié)果僅供參考。如果您的英語足夠好建議您到微軟英文官方網(wǎng)站下載英文的代碼并自行編譯(整個(gè)軟件全部包含在一個(gè)cs文件中,需要在命令行下編譯),本軟件僅僅為那些英語不十分過關(guān)的朋友提供一些小小的幫助。

.net中的WMI編程實(shí)例:

在WMI中有一種查詢語言,類似于SQL語言,這種語言叫做WQL(WMI Query Language),實(shí)際上是標(biāo)準(zhǔn)SQL的一個(gè)子集加上了WMI的擴(kuò)展。在接下來的教程中我會(huì)給大家演示一些WQL的例子。

用js或者vbs都可以通過WMI來獲取系統(tǒng)信息。下面是一個(gè)用vbs編寫的獲取系統(tǒng)序列號(hào)的小程序,你可以把它復(fù)制到一個(gè)文本文件里,然后保存為文件為.vbs的文件,然后運(yùn)行:

Set SNSet = GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem")

for each SN in SNSet

MsgBox "當(dāng)前操作系統(tǒng)的序列號(hào)是: " & SN.SerialNumber

這是在我的機(jī)子上運(yùn)行的結(jié)果:

WMI Code Creator中文版

如果通過常規(guī)手段在.net里讓你寫這個(gè)方法不知道你需要多少行代碼?需要利用幾次搜索引擎?一會(huì)我將展示如何在.net里利用WMI獲取操作系統(tǒng)序列號(hào)。

其實(shí)在.net里是支持WMI編程的,在.net類庫(kù)里專門有一個(gè)System.Management 命名空間,MSDN介紹這個(gè)命名空間如下:

“提供對(duì)大量管理信息和管理事件集合的訪問,這些信息和事件是與根據(jù) Windows 管理規(guī)范 (WMI) 結(jié)構(gòu)對(duì)系統(tǒng)、設(shè)備和應(yīng)用程序設(shè)置檢測(cè)點(diǎn)有關(guān)的。應(yīng)用程序和服務(wù)可以使用從 ManagementObjectSearcher 和 ManagementQuery 派生的類,查詢感興趣的管理信息(例如在磁盤上還剩多少可用空間、當(dāng)前 CPU 利用率是多少、某一應(yīng)用程序正連接到哪一數(shù)據(jù)庫(kù)等等);或者應(yīng)用程序和服務(wù)可以使用 ManagementEventWatcher 類預(yù)訂各種管理事件。這些可訪問的數(shù)據(jù)可以來自分布式環(huán)境中托管的和非托管的組件。”。

System.Management 命名空間包含了下面一些常用類:

◆ManagementObject 或 ManagementClass:分別為單個(gè)管理對(duì)象或類。

◆ManagementObjectSearcher:用于根據(jù)指定的查詢或枚舉檢索 ManagementObject 或 ManagementClass 對(duì)象的集合。

◆ManagementEventWatcher:用于預(yù)訂來自 WMI 的事件通知。

◆ManagementQuery:用作所有查詢類的基礎(chǔ)。

在實(shí)際編程中需要注意,System.Management 命名空間中的類都存在于System.Management .dll這個(gè)文件中,所以在編程的時(shí)候一定要添加對(duì)這個(gè)dll文件的引用,如下圖:

WMI Code Creator中文版

然后還需要在我們的程序開始處添加如下代碼:System.Management,這樣我們采用使用這個(gè)命名空間下的類來進(jìn)行WMI編程。

下面我將用一個(gè)方法展示我剛才提到的如何在.net里獲取操作系統(tǒng)序列號(hào):

///

/// 獲取操作系統(tǒng)序列號(hào)

///

///

public string GetSerialNumber()

{

string result = "";

ManagementClass mClass = new ManagementClass("Win32_OperatingSystem");

ManagementObjectCollection moCollection = mClass.GetInstances();

foreach (ManagementObject mObject in moCollection)

{

result += mObject["SerialNumber"].ToString();

}

return result;

}

我想這個(gè)方法夠簡(jiǎn)單的了。

下面貼出一些常用的方法來獲取系統(tǒng)相關(guān)的信息,代碼如下:

using System;

using System.Collections.Generic;

using System.Text;

namespace WMIDemo

{

///

/// 說明:這個(gè)類很簡(jiǎn)單,主要包含一個(gè)Main方法

/// 作者:周公

/// 日期:2008-1-14

/// 首發(fā)地址:http://blog.csdn.net/zhoufoxcn

///

class Program

{

static void Main(string[] args)

{

GetSystemInfo getInfo = new GetSystemInfo();

Console.WriteLine("序列號(hào)="+getInfo.GetSerialNumber());

Console.WriteLine("CPU編號(hào)=" + getInfo.GetCpuID());

Console.WriteLine("硬盤編號(hào)=" + getInfo.GetMainHardDiskId());

Console.WriteLine("主板編號(hào)=" + getInfo.GetMainBoardId());

Console.WriteLine("網(wǎng)卡編號(hào)=" + getInfo.GetNetworkAdapterId());

Console.WriteLine("用戶組=" + getInfo.GetGroupName());

Console.WriteLine("驅(qū)動(dòng)器情況=" + getInfo.GetDriverInfo());

Console.ReadLine();

}

}

}

由于是一個(gè)命令行程序,所以有上面那個(gè)類,下面這個(gè)類才包含我要展示的代碼:

using System;

using System.Collections.Generic;

using System.Text;

using System.Management;

namespace WMIDemo

{

///

/// 說明:這個(gè)類主要用來展示如何利用WMI來獲取一些操作系統(tǒng)的信息

/// 作者:周公

/// 時(shí)間:2008-1-14

/// 首發(fā)地址:http://blog.csdn.net/zhoufoxcn

///

public class GetSystemInfo

{

///

/// 獲取操作系統(tǒng)序列號(hào)

///

///

public string GetSerialNumber()

{

string result = "";

ManagementClass mClass = new ManagementClass("Win32_OperatingSystem");

ManagementObjectCollection moCollection = mClass.GetInstances();

foreach (ManagementObject mObject in moCollection)

{

result += mObject["SerialNumber"].ToString() + " ";

}

return result;

}

///

/// 查詢CPU編號(hào)

///

///

public string GetCpuID()

{

string result = "";

ManagementClass mClass = new ManagementClass("Win32_Processor");

ManagementObjectCollection moCollection = mClass.GetInstances();

foreach (ManagementObject mObject in moCollection)

{

result += mObject["ProcessorId"].ToString() + " ";

}

return result;

}

///

/// 查詢硬盤編號(hào)

///

///

public string GetMainHardDiskId()

{

string result = "";

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");

ManagementObjectCollection moCollection = searcher.Get();

foreach (ManagementObject mObject in moCollection)

{

result += mObject["SerialNumber"].ToString() + " ";

}

return result;

}

///

/// 主板編號(hào)

///

///

public string GetMainBoardId()

{

string result = "";

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root/CIMV2",

"SELECT * FROM Win32_BaseBoard");

ManagementObjectCollection moCollection = searcher.Get();

foreach (ManagementObject mObject in moCollection)

{

result += mObject["SerialNumber"].ToString() + " ";

}

return result;

}

///

/// 主板編號(hào)

///

///

public string GetNetworkAdapterId()

{

string result = "";

ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT MACAddress FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL)AND (Manufacturer <> 'Microsoft'))");

ManagementObjectCollection moCollection = searcher.Get();

foreach (ManagementObject mObject in moCollection)

{

result += mObject["MACAddress"].ToString() + " ";

}

return result;

}

///

/// 主板編號(hào)

///

///

public string GetGroupName()

{

string result = "";

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root/CIMV2", "SELECT * FROM Win32_Group");

ManagementObjectCollection moCollection = searcher.Get();

foreach (ManagementObject mObject in moCollection)

{

result += mObject["Name"].ToString() + " ";

}

return result;

}

///

/// 獲取本地驅(qū)動(dòng)器信息

///

///

public string GetDriverInfo()

{

string result = "";

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root/CIMV2", "SELECT * FROM Win32_LogicalDisk");

ManagementObjectCollection moCollection = searcher.Get();

foreach (ManagementObject mObject in moCollection)

{

//mObject["DriveType"]共有6中可能值,分別代表如下意義:

//1:No type 2:Floppy disk 3:Hard disk

//4:Removable drive or network drive 5:CD-ROM 6:RAM disk

//本處只列出固定驅(qū)動(dòng)器(硬盤分區(qū))的情況

if (mObject["DriveType"].ToString() == "3")

{

result += string.Format("Name={0},FileSystem={1},Size={2},FreeSpace={3} ", mObject["Name"].ToString(),

mObject["FileSystem"].ToString(), mObject["Size"].ToString(), mObject["FreeSpace"].ToString());

}

}

return result;

}

}

}

程序的運(yùn)行結(jié)果如下(不同機(jī)器上的結(jié)果會(huì)不相同):

WMI Code Creator中文版

最后說明:雖然絕大部分Windows操作系統(tǒng)已經(jīng)安裝了WMI(根據(jù)微軟官方說法是自WinME以后的Windows系統(tǒng)包括WinME都安裝了),但是不能保證上面的代碼能在所有的Windows操作系統(tǒng)之上,如Win95之類,如果在不支持WMI的Windows系統(tǒng)上運(yùn)行WMI,那么需要從MSDN下載WMI。

另外,運(yùn)行WMI需要當(dāng)前Windows登錄用戶有一定的權(quán)限,由于本人開發(fā)時(shí)是以管理員的身份登錄并運(yùn)行程序的,所以沒有權(quán)限異常提示,但是我不保證代碼在你處運(yùn)行也正常,特別是在WebForm的環(huán)境下,因?yàn)閍sp.net程序默認(rèn)是較低的權(quán)限運(yùn)行的(安全原因)。

軟件特色

1、WMI代碼創(chuàng)建器工具可生成使用WMI獲取管理信息或執(zhí)行管理任務(wù)的代碼。

2、您可以使用該工具學(xué)習(xí)如何使用WMI腳本和WMI .NET管理計(jì)算機(jī)。

3、該工具生成的代碼可以在本地計(jì)算機(jī),遠(yuǎn)程計(jì)算機(jī)或一組遠(yuǎn)程計(jì)算機(jī)上運(yùn)行,??具體取決于您在該工具上的目標(biāo)計(jì)算機(jī)菜單中的選擇。

4、您也可以直接從工具執(zhí)行生成的代碼。

5、該工具有助于避免編寫使用WMI的代碼的復(fù)雜性,并幫助開發(fā)人員和IT專業(yè)人員了解WMI可用于管理計(jì)算機(jī)的強(qiáng)大和實(shí)用性。

6、使用該工具您可以查詢管理信息,例如操作系統(tǒng)的名稱和版本,硬盤上的可用磁盤空間多少或服務(wù)的狀態(tài)。

7、您還可以使用該工具從WMI類執(zhí)行一個(gè)方法來執(zhí)行管理任務(wù)。例如:您可以創(chuàng)建執(zhí)行Win32_Process類的Create方法的代碼,以創(chuàng)建新的進(jìn)程(如記事本或其他可執(zhí)行文件)。

8、該工具還允許您生成代碼以使用WMI接收事件通知。例如,您可以選擇在每次啟動(dòng)或停止進(jìn)程或計(jì)算機(jī)關(guān)閉時(shí)接收事件。

9、該工具還允許您瀏覽本地計(jì)算機(jī)上可用的WMI名稱空間和類,以查找其描述,屬性,方法和限定符。

10、下載中還包含創(chuàng)建該工具的代碼:該工具是使用WMI .NET創(chuàng)建的,該工具的代碼可以幫助開發(fā)人員了解如何使用WMI .NET來創(chuàng)建應(yīng)用程序和管理信息,請(qǐng)務(wù)必閱讀下載中包含的最終用戶許可協(xié)議。

11、支持查詢BIOS的相關(guān)信息:可以在命名空間處選擇rootCIMV2(這個(gè)是默認(rèn)選擇),然后在全部類處選擇Win32_BIOS,這時(shí)就會(huì)列出Win32_BIOS類的所有屬性,可以選擇其中一個(gè)屬性然后點(diǎn)擊“查詢屬性值”。

12、可以執(zhí)行查詢或者執(zhí)行一個(gè)方法等,還可以查看當(dāng)前或者遠(yuǎn)程電腦上的命名空間以及其下的類,并且還可以生成相關(guān)的代碼,支持生成的代碼類型包括VBS、C#及VB.NET,默認(rèn)生成VBS代碼。

更新日志

1、增加了可生成的代碼類型

2、增加了一些新增代碼的管理功能

3、解決了一些格式上的已知問題

4、修復(fù)了一些bug,優(yōu)化了軟件界面

5、優(yōu)化了軟件性能

  • 下載地址