• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

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

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

        更新時間:2022-04-30 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

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



        圖三

        My.Computer 選項卡

        控制這個網(wǎng)格的代碼如下:

        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選項卡中的網(wǎng)格控件的代碼非常相似。用一個類型化的數(shù)據(jù)集來裝載My.Computer對象屬性中獲得的值,并綁定到一個表格控件。

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

        My.Computer

        屬性/方法 描述

        Clock
        允許你訪問當(dāng)前中時區(qū)時間和本地時間,以及計數(shù)刻度。

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

        FileSystem
        允許你進行許多IO操作,如復(fù)制文件、目錄,移動文件、目錄,讀取或?qū)懭胛募取R话闱闆r只需要一行代碼。

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

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

        Name
        告訴你當(dāng)前正運行的本地計算機的名稱。

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

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

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

        Screen
        允許你訪問系統(tǒng)附帶的監(jiān)視器以及顯示屬性,如BitsPerPixel和WorkingArea等。


        My.Computer在開發(fā)中的相關(guān)應(yīng)用

        My.Computer提供給你很多訪問系統(tǒng)底層的功能,你可以用在很多方面。比如你可以用Network屬性和其相關(guān)的Ping、PingWithDetails方法輕易地Ping一個網(wǎng)絡(luò)地址。

        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

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

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

        · 在文件后面附加文本。

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

        · 復(fù)制文件夾時創(chuàng)建所有完整路徑所需的父文件夾。

        · 移動文件夾時創(chuàng)建所有完整路徑所需的父文件夾。

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

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

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

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

        My.Computer.FileSystem.ReadAllText(filePath)

        復(fù)制和移動文件夾變得非常容易。

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

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

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

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

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

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

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

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

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



        圖 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())

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

        My.User

        屬性/方法 描述

        DisplayName
        允許你訪問當(dāng)前登錄用戶的顯示名稱。

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

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

        UserName
        允許你訪問當(dāng)前登錄用戶的用戶名。

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


        My.User在開發(fā)中的相關(guān)應(yīng)用

        My.User能夠給你相當(dāng)多的關(guān)于當(dāng)前登錄用戶的信息。在很多方面,My所提供的User對象都是學(xué)習(xí)或使用.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操作的一個經(jīng)典例子。很多開發(fā)人員第一次面對Framework時,不會本能地想到要從Principal對象或從當(dāng)前線程取得進程身份才能獲得當(dāng)前登錄的用戶的帳號名稱。很多開發(fā)人員以為這種信息肯定是在更高級的抽象層次上才能得到。現(xiàn)在用My,獲取這種信息既簡單又快速。

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

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

        dgOrders.DataSource = _

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

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

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

        Form2.Show

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

        Dim frm1 As New Form1()

        frm1.Show()

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

        My.Forms.Form2.Show()

        Form2.Show()

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

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

        結(jié)論

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

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

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 成人毛片手机版免费看| 久久九九AV免费精品| 免费毛片在线看片免费丝瓜视频 | 亚洲精品在线免费看| 久久精品免费视频观看| 亚洲国产精品lv| 美丽的姑娘免费观看在线播放 | 亚洲Av永久无码精品三区在线 | 黄页免费在线观看| 亚洲精品无码不卡| 无码区日韩特区永久免费系列| 中文文字幕文字幕亚洲色| 色视频色露露永久免费观看| 亚洲乱人伦中文字幕无码| 国产免费人成在线视频| 国产成人1024精品免费| 亚洲大片在线观看| a毛片基地免费全部视频| 国产精品久久久久久亚洲影视| 亚洲av高清在线观看一区二区 | 亚洲&#228;v永久无码精品天堂久久 | 国产免费福利体检区久久| 久久99国产亚洲高清观看首页| 精品无码无人网站免费视频| ass亚洲**毛茸茸pics| 免费a级毛片永久免费| a级毛片在线免费观看| 亚洲制服丝袜精品久久| 国产一级淫片a免费播放口之| 中文精品人人永久免费| 亚洲乱码在线播放| 亚洲精品99久久久久中文字幕| 久久久久久毛片免费播放| 亚洲av最新在线观看网址| 日本亚洲欧洲免费天堂午夜看片女人员 | 免费人妻av无码专区| 免费无码又爽又刺激网站直播 | 中文字幕亚洲精品| 免费A级毛片无码久久版| 久久99国产乱子伦精品免费| 色天使色婷婷在线影院亚洲|