1. 程式人生 > 其它 >一個實用的卻被忽略的名稱空間:Microsoft.VisualBasic

一個實用的卻被忽略的名稱空間:Microsoft.VisualBasic

  當你看到這個名稱空間的時候,別因為是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()方法,向指定的網路位置上傳檔案。一般情況下,第一個引數指定需要上傳檔案的本地位置,第二個引數指定上傳到的網路位置。