一个实用的却被忽略的命名空间: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类可以帮助

 

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

我们快速地播放波形音频文件。波形文件是一种无损的音频文件,在很多场合都可使用,其中,在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()方法,向指定的网络位置上传文件。一般情况下,第一个参数指定需要上传文件的本地位置,第二个参数指定上传到的网络位置。

 

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

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

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

转载于:https://www.cnblogs.com/lvdongjie/p/5666152.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,

作业一: 1) 新建用户natasha,uid为1000,gid为555,备注信息为“master” 2) 修改natasha用户的家目录为/Natasha 3) 查看用户信息配置文件的最后一行 4) 为natasha用户设置密码“123” 5) 查看用户密码配置文件的最后一行 6) 将nat…

动态表单,JSF世界早已等待

新的PrimeFaces扩展版本0.5.0带来了新的DynaForm组件。 通常,如果知道行/列的数量,元素的位置等,则可以通过h:panelGrid或p:panelGrid来构建非常简单的表单。 对于静态表单,这是正确的。 但是,如…

C# 定时器事件(设置时间间隔,间歇性执行某一函数,控制台程序)

定时器事件代码 static void Main(string[] args) {Method();#region 定时器事件 Timer aTimer new Timer();aTimer.Elapsed new ElapsedEventHandler(TimedEvent);aTimer.Interval seconds * 1000; //配置文件中配置的秒数aTimer.Enabled true;#endregionstring strLi…

Vmware安装Centos NAT方式设置静态IP

【Vmware中在搭建集群环境等,DHCP自动获取IP方式不方便,为了固定IP减少频繁更改配置信息,建议使用静态IP来配置,网络连接主要有三种方式 1.nat 2.桥接,3主机模式 ,在这里主要介NAT方式, 为什么使…

1 TB /节点时快速,可预测且高度可用

世界正每秒从移动设备,Web和各种小工具向应用程序推送大量数据。 如今,更多的应用程序必须处理此数据。 为了保持性能,这些应用程序需要快速访问数据层。 在过去的几年中,RAM价格下降了,我们现在可以便宜得多地获得具有…

java jni 内存_Android开发之JNI内存模型

Java 与JNI 内存管理是怎样的想要弄清楚Java与JNI的内存管理的关系,首先要弄清楚JVM的内存模型JVM内存模型.png其中本地方法栈就是运行时调用native 方法的数据保存区。本地方法栈的大小可以设置成固定的或者是动态扩展。Java中的内存泄露JAVA 编程中的内存泄漏&…

04 linux用户群组和权限

作业一: 1)新建用户natasha,uid为1000,gid为555,备注信息为“master” 2)修改natasha用户的家目录为/Natasha 3)查看用户信息配置文件的最后一行 4)为natasha用户设置密码“123” 5)查看用户密码配置文件的最后一行 6)将natasha用…

基于 CoreText 实现的高性能 UITableView

引起UITableView卡顿比较常见的原因有cell的层级过多、cell中有触发离屏渲染的代码(譬如:cornerRadius、maskToBounds 同时使用)、像素是否对齐、是否使用UITableView自动计算cell高度的方法等。本文将从cell层级出发,以一个仿朋友…

Web Magic 总体架构

1.2 总体架构 WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。 而S…

SpringMVC搭建+实例

想做一点自己喜欢的东西,研究了一下springMVC,所以就自己搭建一个小demo,可供大家吐槽。 先建一个WEB工程,这个相信大家都会,这里不在多说。去网上下载spring jar包,然后在WEB-INF下新建一个lib文件,将下载的jar包放进…

php8更新,PHP 8 中新特性以及重大调整

PHP 8,PHP 的一个新的大版本,预计将于2020年12月3日发布,这意味着将不会有 PHP 7.5 版本。PHP8目前正处于非常活跃的开发阶段,所以在接下来的几个月里,情况可能会发生很大的变化。在这篇文章中,我会维持一个…

Javascript学习之函数(function)

http://www.cnblogs.com/royalroads/p/4418587.html 在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针。 一 函数的声明方式 //1.函数声…

用于Spring JPA2后端的REST CXF

在本演示中,我们将使用spring / jpa2后端生成一个REST / CXF应用程序。 该演示演示了分钟项目的轨迹REST-CXF 。 演示2中的模型保持不变。 浓缩保持不变。 但是轨道改变了 添加的是2层: 在JPA2之上具有弹簧集成的DAO层 具有JAX-RS批注的REST-CXF层…

完整的WebApplication JSF EJB JPA JAAS –第1部分

这篇文章将是迄今为止我博客中最大的一篇文章! 我们将看到完整的Web应用程序。 最新的技术将完成此工作(直到今天),但是我将给出一些提示以显示如何使本文适用于较旧的技术。 在本文的结尾,您将找到要下载的源代码。 您…

使用Hibernate加载或保存图像-MySQL

本教程将引导您逐步了解如何使用Hibernate从数据库( MySQL )保存和加载图像。 要求 对于此示例项目,我们将使用: Eclipse IDE (您可以使用自己喜欢的IDE); MySQL (您可以使用任何…

javaweb回顾第四篇Servlet异常处理

前言&#xff1a;很多网站为了给用户很好的用户体验性&#xff0c;都会提供比较友好的异常界面&#xff0c;现在我们在来回顾一下Servlet中如何进行异常处理的。 1&#xff1a;声明式异常处理 什么是声明式&#xff1a;就是在web.xml中声明对各种异常的处理方法。 是通过<er…

java开发cs教程,日常运维(一)

w命令&#xff1a;用于查看系统负载、显示已经登陆系统的用户列表&#xff0c;并显示用户正在执行的指令等信息第一行从左面开始显示的信息依次为&#xff1a;时间&#xff0c;系统运行时间&#xff0c;登录用户数&#xff0c;平均负载。第二行开始以及下面所有的行&#xff0c…

coursera 《现代操作系统》 -- 第五周 同步机制(1)

临界区块&#xff08;Critical section&#xff09;指的是一个访问共用资源&#xff08;例如&#xff1a;共用设备或是共用存储器&#xff09;的程序片段&#xff0c;而这些共用资源有无法同时被多个线程访问的特性。&#xff08;不是字面意思的一个区域&#xff0c;是程序片段…

php进度条插件,分享8款优秀的 jQuery 加载动画和进度条插件_jquery

加载动画和进度条在网站和 Web 应用中的使用非常流行。虽然网速越来越快&#xff0c;但是我们的网站越来越复杂&#xff0c;同时用户对网站的使用体验的要求也越来越高。在内容加载缓慢的时候&#xff0c;使用时尚的加载动画和进度条告诉用户还有内容正在加载是一种非常好的方式…

卷积神经网络(CNN)与特殊的卷积

各种卷积操作的可视化的显示形式&#xff1a;GitHub - vdumoulin/conv_arithmetic: A technical report on convolution arithmetic in the context of deep learning1. fractionally-strided 卷积 如上图示&#xff0c;输入为 33 &#xff0c;想要卷积上采样成 55 的输出。需要…