當你看到這個命名空間的時候,別因為是VB的東西就匆忙關掉網頁,那將會是您的損失,此命名空間中的資源最初目的是為了簡化VB.NET開發而創建的,所以Microsoft.VisualBasic并不屬于System命名空間,而是獨立存在的。雖然是為了VB而建的,但并不妨礙我們在C#中使用它。
Microsoft.VisualBasic命名空間的資源,可以幫助我們方便、快捷的實用一些常用的計算機軟/硬件及網絡資源,提高開發中的效率。
對于本地計算機資源的使用,我們可能會著重關注Microsoft.VisualBasic.Devices命名空間,在這里包含了與本機設備和操作系統相關的資源。
使用這些資源,我們必須在項目中添加它們的引用。可以通過菜單“項目”->“添加引用”,在“.NET”頁選中“Microsoft.VisualBasic”,然后“確定”完成。然后,別忘了在代碼文件中使用它們。
在這里我們主要關注一下Microsoft.VisualBasic.Devices命名空間中的資源,主要包括:
- Audio類
- Clock類
- Computer類
- ComputerInfo類
- Keyboard類
- Mouse類
- Network類
- Ports類
- ServerComputer類
關于這些資源的詳細說明,大家可以參考MSDN Library。下面,我們將通過幾種典型的應用了解下如何在C#代碼中使用這些資源。
獲取操作系統與內存信息
為了實現本功能,我們使用了ComputerInfo類,下面代碼顯示當前計算機的系統名稱和版本,以及內存相關的信息。
using Microsoft.VisualBasic;
using Microsoft.VisualBasic.Devices;
namespace Microsoft.VisualBasic_Demo
{
class Program
{
//將字節轉換為兆字節
static ulong ByteToMb(ulong byteValue)
{
return byteValue / 1048576;
}
static void Main(string[] args)
{
ComputerInfo myPcInfo = new ComputerInfo();
Console.WriteLine("操作系統:{0}", myPcInfo.OSFullName);
Console.WriteLine("版本:{0}", myPcInfo.OSVersion);
Console.WriteLine("全部物理內存:{0}",
ByteToMb(myPcInfo.TotalPhysicalMemory));
Console.WriteLine("全部虛擬內存:{0}",
ByteToMb(myPcInfo.TotalVirtualMemory));
Console.WriteLine("可用物理內存:{0}",
ByteToMb(myPcInfo.AvailablePhysicalMemory));
Console.WriteLine("可用虛擬內存:{0}",
ByteToMb(myPcInfo.AvailableVirtualMemory));
Console.Read();
}
}
}
運行結果如下:
如果你的軟件對操作系統版本或內存有特殊的要求,使用這些信息可以方便地進行相關信息的判斷。如果你需要得到更多關于Windows的相關信息,如計算機名稱(ComputerName)、當前登錄名
(UserName)等,可以使用位于System.Windows.Forms命名空間中的SystemInformation類來獲取。
播放波形文件
位于Microsoft.VisualBasic.Devices命名空間下的Audio類可以幫助我們快速地播放波形音頻文件。波形文件是一種無損的音頻文件,在很多場合都可使用,其中,在Windows系統中的系統聲音就是使用波形文件。
在Audio類中,我們主要使用Play()方法播放波形文件。代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.VisualBasic; using Microsoft.VisualBasic.Devices; namespace Microsoft.VisualBasic_Demo { class Program { static void Main(string[] args) { //播放聲音 Audio myAudio = new Audio(); myAudio.Play(@"c:\test.wav", AudioPlayMode.Background); Console.Read(); } } }
代碼很簡單,目的就是播放位于“C:\”中的”test.wav”波形文件。文件不存在或者格式不支持時,會產生異常,所以,在正式代碼中,你應該使用try-catch語句結構。
Play()方法的兩個參數,第一個是需要播放文件的路徑。第二個參數指定了播放模式(Mode),由AudioPlayMode枚舉類型指定,主要有如下選項:
- Background,在后臺中播放聲音。這是默認值,上述代碼可以直接寫成”
myAudio.Play(@"c:\test.wav");“。 - BackgroundLoop,在后臺中循環播放,直到調用Stop()方法為止。
- WaitToComplete,播放聲音,直到聲音播放完成才繼續執行其他代碼。
網絡基本應用
有時,需要在軟件中判斷網絡是否暢通,或者上傳或下載文件,這時,可以使用Microsoft.VisualBasic.Devices命名空間的Network類。
Network類只要包括如下常用資源:
- IsAvaiable屬性,判斷計算機是否已聯網,如果網絡暢通,則此屬性返回true,否則,
返回false。- Ping()方法,用于測試與另一臺計算機的連接是否暢通。參數可以是URL、計算機名或IP地址。
- DownloadFile()方法,從指定的網絡位置下載文件。一般情況下,第一個參數指定需要下載文件的網絡位置,第二個參數指定本地存放位置。
- UploadFile()方法,向指定的網絡位置上傳文件。一般情況下,第一個參數指定需要上傳文件的本地位置,第二個參數指定上傳到的網絡位置。
文章列表