- 軟件大?。?00KB
- 軟件語言:簡(jiǎn)體中文
- 軟件類型:國(guó)產(chǎn)軟件
- 軟件類別:編程工具
- 更新時(shí)間:2018-04-27
- 軟件授權(quán):免費(fèi)版
- 官方網(wǎng)站://48statesin48weeks.com
- 運(yùn)行環(huán)境:XP/Win7/Win8/Win10
- 標(biāo)簽:代碼生成器 代碼生成工具
586KB/簡(jiǎn)體中文/7.5
PHPMaker(PHP代碼生成器) V2020.0.2.0 官方版
41.33MB/簡(jiǎn)體中文/7.5
7.54MB/簡(jiǎn)體中文/7.5
科發(fā)EasyUi代碼生成器 v3.0免費(fèi)版
1.25MB/簡(jiǎn)體中文/7.5
PHPMaker(PHP代碼生成工具)中文版 v2018.0.2.0官方版
7.17MB/簡(jiǎn)體中文/7.5
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代碼生成器可以執(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ì)在下面的文本框中列出該屬性的值,如下圖所示:
從上圖中可以看出本人的本本BIOS是DELL的,在右側(cè)生成代碼處可以看到相關(guān)的VBS代碼,如果看默認(rèn)生成的VBS代碼不爽可以換成C#或者VB.NET的,具體操作就是在“編程語言”菜單處選擇,如下圖所示:
下面是選擇目標(biāo)編程語言為C#后生成的代碼,如下圖所示:
WMI代碼生成器默認(rèn)是連接到本地機(jī)器,不過也提供了連接遠(yuǎn)程主機(jī)或者主機(jī)組的功能,這個(gè)可以在目標(biāo)機(jī)器中選擇。如下圖所示。
由于本人已經(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é)果:
如果通過常規(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文件的引用,如下圖:
然后還需要在我們的程序開始處添加如下代碼: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ì)不相同):
最后說明:雖然絕大部分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)化了軟件性能