7. 把Visual Studio .Net的當前窗口切換到Form1.cs文件的編輯窗口,並用下列代碼替換Form1.cs中的button1的Click事件對應的處理代碼。下列代碼的作用是對遠程計算機進行WMI查詢,提起查詢得到數據,並顯示結果:
private void button1_Click ( object sender , System.EventArgs e )
{
long mb = 1048576 ;
//1024x1024
//設定生成的WMI所需的所有設置
System.Management.ConnectionOptions Conn = new ConnectionOptions ( ) ;
//設定用於WMI連接操作的用戶名
Conn.Username = textBox2.Text ;
//設定用戶的口令
Conn.PassWord = textBox3.Text ;
//設定用於執行WMI操作的范圍
System.Management.ManagementScope Ms = new ManagementScope ( "\\\\" + textBox1.Text + "\\root\\cimv2" , Conn ) ;
try
{
//連接到實際操作的WMI范圍
Ms.Connect ( ) ;
//設定通過WMI要查詢的內容
ObjectQuery Query = new ObjectQuery ( "select FreeSpace ,Size ,Name from Win32_LogicalDisk where DriveType=3" ) ;
//WQL語句,設定的WMI查詢內容和WMI的操作范圍,檢索WMI對象集合
ManagementObjectSearcher Searcher = new ManagementObjectSearcher ( Ms , Query ) ;
//異步調用WMI查詢
ManagementObjectCollection ReturnCollection = Searcher.Get ( ) ;
double free = 0 ;
double use = 0 ;
double total = 0 ;
listBox1.Items.Clear ( ) ;
//通過對產生的WMI的實例集合進行檢索,獲得硬盤信息
foreach ( ManagementObject Return in ReturnCollection )
{
listBox1.Items.Add ( "磁盤名稱:" + Return["Name"].ToString ( ) ) ;
//獲得硬盤的可用空間
free = Convert.ToInt64 ( Return["FreeSpace"] ) /mb ;
//獲得硬盤的已用空間
use = ( Convert.ToInt64 ( Return["Size"] ) - Convert.ToInt64 ( Return["FreeSpace"] ) ) /mb ;
//獲得硬盤的合計空間
total = Convert.ToInt64 ( Return["Size"] ) /mb ;
listBox1.Items.Add ( " 總計:"+ total.ToString ( ) + "MB" ) ;
listBox1.Items.Add ( "已用空間:"+ use.ToString ( ) + "MB" ) ;
listBox1.Items.Add ( "可用空間:"+ free.ToString ( ) + "MB" ) ;
}
}
catch ( Exception ee )
{
MessageBox.Show ( "連接" + textBox1.Text + "出錯,出錯信息為:" + ee.Message ,"出現錯誤!" ) ;
}
}
8. 至此,在上述步驟都正確完成後,【獲取遠程計算機硬盤信息】項目的全部工作也就完成了。此時單擊快捷鍵F5運行程序。在正確輸入遠程計算機的IP地址或用戶名,遠程計算機超級用戶名和口令後,單擊【獲取硬盤信息】按鈕,則程序會獲取的指定計算機的硬盤的數據並顯示出來,具體如圖08所示:
圖08:【獲得遠程計算機硬盤信息】的運行界面
怎麼樣,是否有一種做黑客的感覺。下面將介紹使用WMI完成一項更"酷"的程序。通過此程序將重啟或關閉遠程計算機。