zoukankan      html  css  js  c++  java
  • 一个实用的却被忽略的命名空间: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();
            }
        }
    }

    运行结果如下:

    QQ截图20130928131212

    如果你的软件对操作系统版本或内存有特殊的要求,使用这些信息可以方便地进行相关信息的判断。如果你需要得到更多关于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:	est.wav", AudioPlayMode.Background);
                Console.Read();
            }
        }
    }

          代码很简单,目的就是播放位于“C:”中的”test.wav”波形文件。文件不存在或者格式不支持时,会产生异常,所以,在正式代码中,你应该使用try-catch语句结构。

           Play()方法的两个参数,第一个是需要播放文件的路径。第二个参数指定了播放模式(Mode),由AudioPlayMode枚举类型指定,主要有如下选项:

    • Background,在后台中播放声音。这是默认值,上述代码可以直接写成”
      myAudio.Play(@"c: est.wav");“。
    • BackgroundLoop,在后台中循环播放,直到调用Stop()方法为止。
    • WaitToComplete,播放声音,直到声音播放完成才继续执行其他代码。

     

     

    网络基本应用

        有时,需要在软件中判断网络是否畅通,或者上传或下载文件,这时,可以使用Microsoft.VisualBasic.Devices命名空间的Network类。

    Network类只要包括如下常用资源:

    • IsAvaiable属性,判断计算机是否已联网,如果网络畅通,则此属性返回true,否则,
      返回false。
    • Ping()方法,用于测试与另一台计算机的连接是否畅通。参数可以是URL、计算机名或IP地址。
    • DownloadFile()方法,从指定的网络位置下载文件。一般情况下,第一个参数指定需要下载文件的网络位置,第二个参数指定本地存放位置。
    • UploadFile()方法,向指定的网络位置上传文件。一般情况下,第一个参数指定需要上传文件的本地位置,第二个参数指定上传到的网络位置。
  • 相关阅读:
    Openstack API 开发 快速入门
    virtualBox虚拟机到vmware虚拟机转换
    使用Blogilo 发布博客到cnblogs
    Openstack Troubleshooting
    hdoj 1051 Wooden Sticks(上升子序列个数问题)
    sdut 2430 pillars (dp)
    hdoj 1058 Humble Numbers(dp)
    uva 10815 Andy's First Dictionary(快排、字符串)
    sdut 2317 Homogeneous squares
    hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
  • 原文地址:https://www.cnblogs.com/smiler/p/3344174.html
Copyright © 2011-2022 走看看