当你看到这个命名空间的时候,别因为是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类,下面代码显示当前计算机的系统名称和版本,以及内存相关的信息。

  1. using microsoft.visualbasic;
  2. using microsoft.visualbasic.devices;
  3. namespace microsoft.visualbasic_demo
  4. {
  5.     class program
  6.     {
  7.         //将字节转换为兆字节
  8.         static ulong bytetomb(ulong bytevalue)
  9.         {
  10.             return bytevalue / 1048576;
  11.         }
  12.         static void main(string[] args)
  13.         {
  14.             computerinfo mypcinfo = new computerinfo();
  15.             console.writeline("操作系统:{0}", mypcinfo.osfullname);
  16.             console.writeline("版本:{0}", mypcinfo.osversion);
  17.             console.writeline("全部物理内存:{0}",
  18.                 bytetomb(mypcinfo.totalphysicalmemory));
  19.             console.writeline("全部虚拟内存:{0}",
  20.                 bytetomb(mypcinfo.totalvirtualmemory));
  21.             console.writeline("可用物理内存:{0}",
  22.                 bytetomb(mypcinfo.availablephysicalmemory));
  23.             console.writeline("可用虚拟内存:{0}",
  24.                 bytetomb(mypcinfo.availablevirtualmemory));
  25.  
  26.             console.read();
  27.         }
  28.     }
  29. }
  30.  

运行结果如下:

如果你的软件对操作系统版本或内存有特殊的要求,使用这些信息可以方便地进行相关信息的判断。如果你需要得到更多关于windows的相关信息,如计算机名称(computername)、当前登录名

(username)等,可以使用位于system.windows.forms命名空间中的systeminformation类来获取。

播放波形文件

位于microsoft.visualbasic.devices命名空间下的audio类可以帮助

此文来自: 马开东博客 转载请注明出处 网址:http://www.makaidong.com

我们快速地播放波形音频文件。波形文件是一种无损的音频文件,在很多场合都可使用,其中,在windows系统中的系统声音就是使用波形文件。

在audio类中,我们主要使用play()方法播放波形文件。代码如下:

  1. using system;
  2. using system.collections.generic;
  3. using system.linq;
  4. using system.text;
  5. using microsoft.visualbasic;
  6. using microsoft.visualbasic.devices;
  7. namespace microsoft.visualbasic_demo
  8. {
  9. class program
  10. {
  11. static void main(string[] args)
  12. {
  13. //播放声音
  14. audio myaudio = new audio();
  15. myaudio.play(@"c:\test.wav", audioplaymode.background);
  16. console.read();
  17. }
  18. }
  19. }

代码很简单,目的就是播放位于“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()方法,向指定的网络位置上传文件。一般情况下,第一个参数指定需要上传文件的本地位置,第二个参数指定上传到的网络位置。
 

搜索此文相关文章:一个实用的却被忽略的命名空间:Microsoft.VisualBasic

 

此文链接:http://www.makaidong.com/IT%E5%8D%9A%E5%AE%A2%E5%9B%AD/35753.shtml

 

转载请注明出处:一个实用的却被忽略的命名空间:Microsoft.VisualBasic - 博客园

"一个实用的却被忽略的命名空间:Microsoft.VisualBasic":的更多相关文章

  1. 一个实用的却被忽略的命名空间:Microsoft.VisualBasic

    当你看到这个命名空间的时候,别因为是VB的东西就匆忙关掉网页,那将会是您的损失,此命名空间中的资源最初目的是为了简化VB.NET开发而创建的,所以Microsoft.VisualBasic并不属于Sy ...

  2. “makefile”写法详解,一步一步写一个实用的makefile,详解 sed 's,$∗\.o[ :]*,\1.o $@ : ,g' < $@.

    目的:编写一个实用的makefile,能自动编译当前目录下所有.c/.cpp源文件,支持二者混合编译.并且当某个.c/.cpp..h或依赖的源文件被修改后,仅重编涉及到的源文件,未涉及的不编译. 二要 ...

  3. vs2013 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”。是否缺少程序集引用?

    参考博文: 解决办法:添加引用/com/Microsoft Office 11.0 Object Library 然后在程序中 C#代码 using Microsoft.Office.Interop. ...

  4. 错误 CS0234 命名空间“Microsoft”中不存在类型或命名空间名“Reporting”(是否缺少程序集引用?)

    VS2017 使用Microsoft Rdlc报表设计器出现以下错误: 错误 CS0234 命名空间“Microsoft”中不存在类型或命名空间名“Reporting”(是否缺少程序集引用?) 以及其 ...

  5. Xamarin基础命名空间Microsoft.SqlServer.Server

    Xamarin基础命名空间Microsoft.SqlServer.Server   该命名空间包含大量的类.接口和枚举,用于操作微软SQL Server数据库.该空间支持Xamarin.iOS和Xam ...

  6. 命名空间“Microsoft.AspNet”中不存在类型或命名空间名“Mvc”

    问题: 错误 CS0234 命名空间"Microsoft.AspNet"中不存在类型或命名空间名"Mvc"(是否缺少程序集引用?) 解决方案: 打开文件夹 Us ...

  7. 命名空间“Microsoft.Office.Interop”中不存在类型或命名空间名称“Excel”。是否缺少程序集引用 的另一种解决方案

    一直以来都是使用tfs进行源代码管理,系统部署也是由我本机生成后发布到服务器上,某一日,进行发布操作时,报了 [命名空间“Microsoft.Office.Interop”中不存在类型或命名空间名称“ ...

  8. 类型或命名空间名称“Interop”在类或命名空间“Microsoft.Office”中不存在(是否缺少程序集引用?)

    准备用C#编写Web程序,生成Excel报表,在使用下面语句时报错. using Microsoft.Office.Interop.Excel; 报错信息:类型或命名空间名称“Interop”在类或命 ...

  9. 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”(是否缺少程序集引用?

    在一个web项目中需要导出word打印,引用Microsoft.Office.Interop.Word后,在pages里使用正常,在app_code里新建类引用就报错. Report.cs里using ...

随机推荐

  1. who - 显示已经登录的用户

    总览 (SYNOPSIS) who [OPTION]... [ FILE | ARG1 ARG2 ] 描述 (DESCRIPTION) -H, --heading 显示 栏目行 -i, -u, --i ...

  2. Python全栈开发:RabbitMQ/Redis/Memcache/SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  3. lua redis 操作

    https://redis.io/commands/keys 遍历redis里面的所有key ,还能进行模糊匹配, 这样就省去了对key的手动过滤了 比如 keys term_info* ) &quo ...

  4. 移动端布局 + iscroll.js

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  5. 在线暴躁:<script />问题

    这个问题是今天发现的,以前都没注意到这个问题: <script src="./vue/vue.min.js" /> <script src="./vue ...

  6. CF 848E(动态规划+分治NTT)

    传送门: http://codeforces.com/problemset/problem/848/E 题解: 假设0-n一定有一条边,我们得到了一个方案,那么显然是可以旋转得到其他方案的. 记最大的 ...

  7. Delphi做异型窗体PNG透明

    {*******************************************************}{ }{ 异形窗口 }{ }{ 2009.12.4 王 锐 }{ }{******** ...

  8. BZOJ 4031: [HEOI2015]小Z的房间(Matrix Tree)

    传送门 解题思路 矩阵树定理模板题.矩阵树定理是求图中最小生成树个数,做法是首先求出基尔霍夫矩阵,就是度数矩阵\(-\)邻接矩阵.然后再求出这个矩阵的行列式,行列式的求法就是任意去掉一行一列,然后高斯 ...

  9. NX二次开发-测量投影距离

    NXOPEN方法,直接录制测量投影距离命令 NX9+VS2012 #include <NXOpen/Annotations.hxx> #include <NXOpen/Assembl ...

  10. 关于C++里set_intersection(取集合交集)、set_union(取集合并集)、set_difference(取集合差集)等函数的使用总结

    文章转载自https://blog.csdn.net/zangker/article/details/22984803 set里面有set_intersection(取集合交集).set_union( ...