欧美特黄不卡,涩涩视频在线,成人国产精品一区二区网站,亚洲一区二区三区欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

向Visual Basic程序員介紹My命名空間(二)

向Visual Basic程序員介紹My命名空間(二)

更新時間:2022-04-30 文章作者:未知 信息來源:網絡 閱讀次數:

My.Computer
My的另一個功能塊是Computer對象。My.Computer對象可以讓你訪問系統底層和應用程序所在硬件平臺的信息。示例應用程序的第二個選項卡展示了你在My.Computer對象中能找到的有趣屬性。



圖三

My.Computer 選項卡

控制這個網格的代碼如下:

myAppDS.MyComputer.AddMyComputerRow("Clock", _

My.Computer.Clock.LocalTime)

myAppDS.MyComputer.AddMyComputerRow("GMT Time", _

My.Computer.Clock.GmtTime)

myAppDS.MyComputer.AddMyComputerRow("Tick Count", _

My.Computer.Clock.TickCount)

myAppDS.MyComputer.AddMyComputerRow("GMT Time", _

My.Computer.EventLogs.Item("Application").ReadEntries().Item(1).Message)

myAppDS.MyComputer.AddMyComputerRow("CRTL Key Down", _

My.Computer.Keyboard.CtrlKeyDown.ToString())

myAppDS.MyComputer.AddMyComputerRow("Button Count", _

My.Computer.Mouse.ButtonCount)

myAppDS.MyComputer.AddMyComputerRow("Buttons Swapped", _

My.Computer.Mouse.ButtonsSwapped)

myAppDS.MyComputer.AddMyComputerRow("Mouse Exists", _

My.Computer.Mouse.Exists.ToString())

myAppDS.MyComputer.AddMyComputerRow("Wheel Scroll Lines", _

My.Computer.Mouse.WheelScrollLines.ToString())

myAppDS.MyComputer.AddMyComputerRow("Wheel Exists", _

My.Computer.Mouse.WheelExists)

myAppDS.MyComputer.AddMyComputerRow("Computer Name", _

My.Computer.Name)

myAppDS.MyComputer.AddMyComputerRow("Connection Status", _

My.Computer.Network.ConnectionStatus)

myAppDS.MyComputer.AddMyComputerRow("Connection Status", _

My.Computer.Network.IPAddresses(0).ToString())

myAppDS.MyComputer.AddMyComputerRow("Operating System Platform", _

My.Computer.OperatingSystem.Platform)

myAppDS.MyComputer.AddMyComputerRow("Version", _

My.Computer.OperatingSystem.Version.Major & "." & _

My.Computer.OperatingSystem.Version.Minor & "." & _

My.Computer.OperatingSystem.Version.Revision & "." & _

My.Computer.OperatingSystem.Version.Build)

myAppDS.MyComputer.AddMyComputerRow("Full Name HKEY_CURRENT_USER", _

My.Computer.Registry.CurrentUser.FullName)

myAppDS.MyComputer.AddMyComputerRow("Device Name", _

My.Computer.Screen.DeviceName)

這段代碼與控制My.Application選項卡中的網格控件的代碼非常相似。用一個類型化的數據集來裝載My.Computer對象屬性中獲得的值,并綁定到一個表格控件。

My.Computer對象的元素不是都能夠顯示在表格控件里。下表列出的項目包括沒有在表格控件里顯示的屬性或方法。

My.Computer

屬性/方法 描述

Clock
允許你訪問當前中時區時間和本地時間,以及計數刻度。

EventLogs
允許你訪問本地事件日志信息以及創建或刪除事件日志。

FileSystem
允許你進行許多IO操作,如復制文件、目錄,移動文件、目錄,讀取或寫入文件等。一般情況只需要一行代碼。

Keyboard
允許你獲取當前鍵盤上某些案件的狀態。比如獲取CTRL鍵、SHIFT鍵或ATL鍵是否被按下,或者CAPS LOCK/SCROLL LOCK是否處于打開狀態等。

Mouse
允許你獲取鼠標的狀態以及它所附帶的特定的硬件特征,如有幾個按鍵,是否帶有滾論等。

Name
告訴你當前正運行的本地計算機的名稱。

Network
允許你訪問本地計算機的IP地址信息,本地計算機的連接狀態,還有Ping一個地址的功能。

Operating System
允許你訪問本地計算機平臺和版本的信息。

Registry
允許你訪問注冊表,并提供讀取和寫入注冊表的功能。

Screen
允許你訪問系統附帶的監視器以及顯示屬性,如BitsPerPixel和WorkingArea等。


My.Computer在開發中的相關應用

My.Computer提供給你很多訪問系統底層的功能,你可以用在很多方面。比如你可以用Network屬性和其相關的Ping、PingWithDetails方法輕易地Ping一個網絡地址。

Dim pingResult As Microsoft.VisualBasic.Net.PingResult = _

My.Computer.Network.PingWithDetails("www.3leaf.com")

If pingResult.PingSuccesses > 0 Then

Dim pingDetails As String = "Average Ping Time in MS: " & _

ingResult.AveragePingTimeInMilliseconds & vbCrLf & _

"Bytes Received: " & pingResult.BytesReceived.ToString() & vbCrLf & _

"IP Address: " & pingResult.IPAddress.ToString() & vbCrLf &_

"Ping Attempts: " & pingResult.PingAttempts.ToString() & vbCrLf & _

"Ping Successes: " & pingResult.PingSuccesses.ToString()

MessageBox.Show(pingDetails)

Else

MessageBox.Show("Ping of www.3leaf.com was not successful")

End If

這段代碼最關鍵的部分是My.Computer.Network.PingWithDetails()。這行代碼返回一個PingResult對象,其中包含了標準Ping動作所返回的數據。如果最少一次Ping操作成功的話,平均響應時間,獲得的字節數,總Ping數目和成功數目都會顯示在一個消息框中。My.Computer.Network還提供一個簡化版的Ping,只返回True或False以示Ping成功與否。像這樣Ping一個地址的功能可以讓你方便地確定是否能與服務器正式建立通信。通過使用My.Computer.Network.ConnectionStatus,你還可以方便地確定當前網絡連接的狀態。ConnectionStatus屬性根據計算機現在是否有網絡連接而返回True或False。

My.Computer另一個很好的應用是在需要訪問文件系統的時候。My.Computer.FileSystem提供給你更好的訪問文件系統的方法,所需的代碼比用VB.NET來實現更少。用My.Computer.FileSystem,你可以只用一行代碼完成下列任務。

· 在文件后面附加文本。

· 從文件中讀取所有文本。

· 復制文件夾時創建所有完整路徑所需的父文件夾。

· 移動文件夾時創建所有完整路徑所需的父文件夾。

你還能用Microsoft.VisualBasic.FileIO命名空間中的類型簡化文件夾、文件和驅動器的操作。這些類型一般都是My.Computer.FileSystem對象的屬性和方法返回的類型。

下面的例子是用My在文件末尾附加文本所需的全部代碼。

My.Computer.FileSystem.AppendText(filePath, “Hello from " & _
“My.Computer.FileSystem”)

如果你想讀取一個文件的全部文本,只需下列代碼即可做到。

My.Computer.FileSystem.ReadAllText(filePath)

復制和移動文件夾變得非常容易。

My.Computer.FileSystem.CopyFolder(sourcePath, targetPath, True, True)

上面這行代碼將文件夾從sourcePath復制到targetPath。最后兩個布爾型參數指定targetPath是否要覆蓋已經存在的文件夾以及指定是否需要創建所需的父文件夾。

剛才提到過FileSystem對象的許多屬性和方法都可以返回Drive、Folder或File類型的對象。這些Microsoft.VisualBasic.FileIO名字空間中的對象封裝了許多新的屬性和方法,可以讓一般的編程工作得到簡化。比如可以用一行代碼可以取得“我得文檔”文件夾所在的驅動器。

My.Computer.FileSystem.SpecialFolders.MyDocuments.Drive.DriveName

更重要的是你可以獲得“我得文檔”文件夾所在的驅動器所剩余的磁盤空間。

My.Computer.FileSystem.SpecialFolders.MyDocuments.Drive.FreeSpace

用文件對象對特定文件或文件夾的操作同樣非常容易。比如你可以用一行代碼輕松地重名名文件。

My.Computer.FileSystem.SpecialFolders.MyDocuments.Drive.FreeSpace

My.User
My名字空間的下一個功能塊是User對象。My.User對象允許你獲取當前登錄用戶的信息如用戶名,域名,以及查詢他們所屬的組群。



圖 3

My.User 選項卡

控制表格控件的代碼如下:

myAppDS.MyUser.AddMyUserRow("Display Name", _

My.User.DisplayName)

myAppDS.MyUser.AddMyUserRow("Domain Name", _

My.User.DomainName)

myAppDS.MyUser.AddMyUserRow("User Name", _

My.User.UserName)

myAppDS.MyUser.AddMyUserRow("Windows Role", _

My.User.WindowsRoles(0).ToString())

這段代碼訪問了當前用戶的信息,這非常簡單。你要做的所有事情就是訪問User對象的屬性。User對象是由下列屬性或方法組成的。

My.User

屬性/方法 描述

DisplayName
允許你訪問當前登錄用戶的顯示名稱。

DomainName
允許你訪問當前登錄用戶所屬的域名,如果他屬于某個域的話。

IsInRole
允許你查詢用戶是否屬于一個特定的角色。

UserName
允許你訪問當前登錄用戶的用戶名。

WindowsRole
WindowsRole是一個包含當前登錄用戶帳號所屬的全部角色/組群信息的集合。


My.User在開發中的相關應用

My.User能夠給你相當多的關于當前登錄用戶的信息。在很多方面,My所提供的User對象都是學習或使用.NET Framework的絕佳捷徑之一。

在以前版本的.NET Framework中,如果你想訪問類似My.User所提供的功能,你必須寫下面這么多代碼。

Imports System.Security.Principal

Imports System.Threading.Thread



Dim winPrin As WindowsPrincipal = Thread.CurrentPrincipal

MessageBox.Show(winPrin.Identity.Name)

或者你得寫成這樣

MessageBox.Show(System.Threading.Thread.CurrentPrincipal.Identity.Name)

但是,在使用了My之后就變得如此直觀。

My.User.UserName

這是一個用My簡化對.NET Framework操作的一個經典例子。很多開發人員第一次面對Framework時,不會本能地想到要從Principal對象或從當前線程取得進程身份才能獲得當前登錄的用戶的帳號名稱。很多開發人員以為這種信息肯定是在更高級的抽象層次上才能得到。現在用My,獲取這種信息既簡單又快速。

My.WebServices和 My.Forms
接下來你將要學到 My命名空間另外兩個主要功能,它們是My.WebServices和My.Forms。在進入這一節之前,我們先做一個簡短的概述。

My.WebServices讓你可以用和訪問數據源一樣簡單的語法訪問在項目中引用的Web服務。

dgOrders.DataSource = _

My.WebServices.Northwind.GetOrders().Tables("Orders")

如果用.NET Framework 1.0/1.1,要想做到上面那行代碼的功能,你必須創建一個WebService的實例。用這種My.WebServices提供的功能可以快捷訪問所有添加到Web引用的Web服務。

最后一個重點My.Form將帶回一種在Visual Basic桌面程序中出現,并暫時消失在VB.NET中的標志性的編程風格。如果你曾經用VB6開發過,你肯定知道下面這種代碼,如果你的項目需要顯示某個窗體:

Form2.Show

在VB.NET時代,你不能再用這種簡單的語法了。在VB.NET中只能用下列代碼顯示一個窗體。

Dim frm1 As New Form1()

frm1.Show()

使用My.Forms,項目中所有的窗體都變成Forms集合的成員。另外如果你想訪問某個窗體默認的實例,你根本不需要使用My.Forms。就是說下面的代碼是等價的。

My.Forms.Form2.Show()

Form2.Show()

在接下來的章節里,你將學到更多用此方法顯示窗體的功能(譯注:可惜我們看不到了)。

如果你想看一些My.WebServices和My.Forms的例子,你可以看看示例程序相關的選項卡。所有這些工能將在本書的后邊詳細地敘述。(本文檔只是此書的樣章,所以到此為止了,想看后面請到亞馬孫書店購買此書)

結論

My命名空間對于一個開發人員來說主要有四項功能。首先它提供很多了以前版本的.NET Framework沒有的功能。第二,它提供了很多快速訪問.NET Framework的BCL的快捷方式。第三,在一定程度上,它讓你想問題時能將“計算機”類的詞當作邏輯實體來操作。第四,它讓一些你熟悉的舊語法回歸到了Visual Basic中,比如Form1.

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 牙克石市| 沙湾县| 长宁县| 龙岩市| 江安县| 万盛区| 遵义县| 泰安市| 宝清县| 彝良县| 屯门区| 安龙县| 澳门| 三江| 绥棱县| 深水埗区| 海南省| 和龙市| 健康| 威信县| 兰考县| 漳浦县| 雷波县| 边坝县| 恩施市| 阜城县| 得荣县| 无极县| 邳州市| 托里县| 四会市| 荥阳市| 灵石县| 庆城县| 聂荣县| 中江县| 二手房| 梁河县| 山丹县| 莱芜市| 滕州市|