一個實用的卻被忽略的命名空間: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.pswp.cn/news/372680.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372680.shtml
英文地址,請注明出處:http://en.pswp.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…

總結get和post區別

參考博文:   淺談HTTP中Get與Post的區別 1. 數據傳遞方向: Get是向服務器發索取數據的一種請求,Post是向服務器提交數據的一種請求 (都是請求,并不是一個取一個發) Get:①用于獲取信息&#x…

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層級出發,以一個仿朋友…

RESTEasy教程第1部分:基礎

RESTEasy是JBoss / RedHat的JAX-RS實現&#xff0c;內置于JBoss 6之后。 在這里&#xff0c;我將向您展示如何使用RESTEasy和JBossAS7.1.1.FINAL開發一個簡單的RESTful Web服務應用程序。 步驟1&#xff1a;使用Maven配置RESTEasy依賴項。 <project xmlnshttp:maven.apache.…

php函數相關函數,PHP數組相關函數匯總

這篇文章主要介紹了PHP數組相關函數,匯總說明了php中相關的數組,具有一定參考借鑒價值,需要的朋友可以參考下本文總結了PHP數組相關的函數。分享給大家供大家參考。具體如下&#xff1a;這里包括函數名和用法說明&#xff0c;沒有詳細的代碼范例。感興趣的朋友可以查閱本站相關…

Web Magic 總體架構

1.2 總體架構 WebMagic的結構分為Downloader、PageProcessor、Scheduler、Pipeline四大組件&#xff0c;并由Spider將它們彼此組織起來。這四大組件對應爬蟲生命周期中的下載、處理、管理和持久化等功能。WebMagic的設計參考了Scapy&#xff0c;但是實現方式更Java化一些。 而S…

L1-006. 連續因子

一個正整數N的因子中可能存在若干連續的數字。例如630可以分解為3*5*6*7&#xff0c;其中5、6、7就是3個連續的數字。給定任一正整數N&#xff0c;要求編寫程序求出最長連續因子的個數&#xff0c;并輸出最小的連續因子序列。 輸入格式&#xff1a; 輸入在一行中給出一個正整數…

基于Java JAAS表單的身份驗證

使用JAAS實現登錄模塊是一個高級主題&#xff0c;而且大多數開發人員也很少有機會參與這種開發。 但是JAAS登錄模塊的基本實現并不是那么困難&#xff0c;這是因為我打算將其發布。 在這里&#xff0c;我正在解釋如何實現tomcat管理的身份驗證模塊。 此實現與容器無關。 我們可…

java自動投票代碼,Java 投票(自動添一)

Java 投票(自動加一)數據庫建立&#xff1a;SQL> create table vote(2 id number,3 name varchar(200),4 num number5 );//index.jsppageEncoding"utf-8"%>投票Connection conn1 null;Statement stmt1 null;ResultSet rs1 null;try {Class.forName("or…

SpringMVC搭建+實例

想做一點自己喜歡的東西&#xff0c;研究了一下springMVC,所以就自己搭建一個小demo,可供大家吐槽。 先建一個WEB工程&#xff0c;這個相信大家都會&#xff0c;這里不在多說。去網上下載spring jar包&#xff0c;然后在WEB-INF下新建一個lib文件&#xff0c;將下載的jar包放進…

Mockito和Hamcrest的試駕制造商

過去&#xff0c;很多人問我是否測試吸氣劑和吸氣劑&#xff08;屬性&#xff0c;屬性等&#xff09;。 他們還問我是否測試我的建筑商。 在我看來&#xff0c;答案取決于情況。 當使用遺留代碼時&#xff0c;我不會費心去測試數據結構&#xff0c;這意味著對象只帶有getter和s…

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

PHP 8&#xff0c;PHP 的一個新的大版本&#xff0c;預計將于2020年12月3日發布&#xff0c;這意味著將不會有 PHP 7.5 版本。PHP8目前正處于非常活躍的開發階段&#xff0c;所以在接下來的幾個月里&#xff0c;情況可能會發生很大的變化。在這篇文章中&#xff0c;我會維持一個…

Javascript學習之函數(function)

http://www.cnblogs.com/royalroads/p/4418587.html 在JS中,Function(函數)類型實際上是對象;每個函數都是Function類型的實例&#xff0c;而且都與其他引用類型一樣具有屬性和方法。由于函數是對象,因此函數名實際上也是一個指向函數對象的指針。 一 函數的聲明方式 //1.函數聲…

jquery彈出可關閉遮罩提示框

jquery CSS3遮罩彈出層動畫效果&#xff0c;使用非常簡單&#xff0c;就兩個標簽&#xff0c;里面自定義內容和樣式&#xff0c;四種常見效果&#xff0c;懂的朋友還可以修改源代碼修改成自己想要的效果效果展示 http://hovertree.com/texiao/jquery/85/代碼如下&#xff1a; &…