• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Windows管理規(guī)范的機(jī)房信息可視化方案

    2020-08-31 01:38:50嚴(yán)強(qiáng)
    軟件工程 2020年8期
    關(guān)鍵詞:機(jī)房管理

    嚴(yán)強(qiáng)

    摘 ?要:從機(jī)房管理實(shí)際工作出發(fā),提出了日常機(jī)房管理中需要經(jīng)常使用的系統(tǒng)信息和處理要求。給出了在Windows管理規(guī)范支持下的詳細(xì)的同時(shí)兼容Windows 7、Windows 10和Windows Server的可視化設(shè)計(jì)方案,并運(yùn)用C#的窗體透明和嵌入桌面技術(shù)對此加以實(shí)現(xiàn)。本方案完成后首先在新建機(jī)房實(shí)施部署,經(jīng)過一個(gè)多學(xué)期的使用,得到了上課教師和機(jī)房管理員的肯定和好評。目前正逐步在其余機(jī)房中部署。

    關(guān)鍵詞:Windows管理規(guī)范;機(jī)房管理;透明窗體;嵌入桌面;Windows服務(wù)

    中圖分類號:TP311 ? ? 文獻(xiàn)標(biāo)識碼:A

    Abstract: In view of system information and processing requirements that are often used in daily computer lab management, a computer lab information visualization project, which is compatible with Windows 7, Windows 10 and Windows Server under the support of Windows Management Instrumentation(WMI), is proposed and achieved by using C# form transparency and embedded desktop technology. When completed, it was first deployed in the newly-built computer labs. After a semester of trial, it was highly praised by both the lecturers and the computer lab administrators. It is now being gradually deployed in the remaining computer labs.

    Keywords: WMI; computer lab management; transparent form; embedded desktop; windows service

    1 ? 引言(Introduction)

    隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展和進(jìn)步,機(jī)房管理系統(tǒng)技術(shù)及市場也日趨成熟和完善。從最初的純硬件版、純軟件版到軟硬件結(jié)合版、網(wǎng)絡(luò)版,再到現(xiàn)在的服務(wù)器集中管理以及智慧教室。各種各樣的管理系統(tǒng)層出不窮,但最終實(shí)現(xiàn)的功能都是最大程度地提高機(jī)房利用率和管理效率。

    目前我院大部分機(jī)房采用的是軟硬件結(jié)合的獨(dú)立管理模式。管理系統(tǒng)將機(jī)房計(jì)算機(jī)硬盤分成若干個(gè)分區(qū),在不同的分區(qū)中安裝不同的操作系統(tǒng)和教學(xué)軟件,滿足不同專業(yè)和班級的教學(xué)及考試要求的。

    根據(jù)實(shí)際管理,需要經(jīng)常顯示的信息包括機(jī)器號、機(jī)器名、IP地址、操作系統(tǒng)及類型、物理內(nèi)存及可用內(nèi)存、各邏輯分區(qū)的容量及剩余容量等信息,其中IP地址、可用內(nèi)存以及邏輯分區(qū)剩余容量要求跟隨變化。同時(shí)要求這些信息要始終顯示在桌面的右上角,除文字以外其余空白處不能遮擋桌面上該位置的信息,要求顯示的信息不受WIN+M鍵、WIN+D鍵、Alt+Tab鍵和任務(wù)欄右側(cè)的“顯示桌面”按鈕控制。

    2 ? 方案確立(Project establishment)

    2.1 ? ?確定顯示方案

    (1)需求分析要求顯示文字以外的空白處不能遮擋桌面上的信息,因而確定將軟件窗體設(shè)置為背景透明、窗體上的控件也設(shè)為背景透明,且為無邊框窗體。

    (2)要求窗體不受WIN+M鍵、WIN+D鍵、Alt+Tab鍵和任務(wù)欄右側(cè)的“顯示桌面”按鈕控制??紤]方案有兩種:

    方案一:使用全局鍵盤鉤子和鼠標(biāo)鉤子,在窗體的全局鍵盤鉤子中過濾WIN+M鍵、WIN+D鍵、Alt+Tab鍵和Alt+F4鍵,鼠標(biāo)鉤子捕捉任務(wù)欄右側(cè)的“顯示桌面”區(qū)域并過濾。

    方案二:將窗體嵌入到桌面里作為桌面的一個(gè)子窗體,因?yàn)樽烂娌皇躓IN+M鍵、WIN+D鍵、Alt+Tab鍵和Alt+F4鍵控制,所以桌面中的子窗體也不受這些鍵控制。

    考慮到方案一要截獲系統(tǒng)的鍵盤和鼠標(biāo)消息,由于窮盡不了各種應(yīng)用軟件和考試系統(tǒng)環(huán)境下的測試,所以該方案存在未知風(fēng)險(xiǎn)。方案二不截獲任何系統(tǒng)消息,不存在上述風(fēng)險(xiǎn),安全性高于方案一,所以軟件采用方案二。

    2.2 ? 數(shù)據(jù)獲取方法

    需求分析中提出的各種信息的獲取,查閱了相關(guān)資料和網(wǎng)站,發(fā)現(xiàn)獲取機(jī)器名及IP地址的方法有多種,獲取和硬件相關(guān)數(shù)據(jù),如物理硬盤、物理內(nèi)存等的方法相對比較集中。結(jié)合本人掌握的編程語言,數(shù)據(jù)獲取方法采用調(diào)用Win32應(yīng)用程序編程接口[1-3](Application Programming Interfaces,API)和Windows管理規(guī)范[4,5](Windows Management Instrumentation,WMI)混合使用方法。

    3 ? 方案設(shè)計(jì)(Project design)

    3.1 ? 總體設(shè)計(jì)

    總體結(jié)構(gòu)設(shè)計(jì)如圖1所示。軟件由操作系統(tǒng)識別、Windows 10處理模塊、Windows 7處理模塊、Windows Server處理模塊和WMI本機(jī)應(yīng)用程序編程接口模塊組成。Windows Server處理模塊顯示的信息和格式與Windows 10和Windows 7不同,且該模塊設(shè)計(jì)為通用各種Windows Server操作系統(tǒng)。以上各模塊通過WMI本機(jī)應(yīng)用程序編程接口模塊調(diào)用WMI核心結(jié)構(gòu)獲取數(shù)據(jù)。

    3.2 ? 詳細(xì)設(shè)計(jì)

    (1)Windows 10模塊

    模塊功能設(shè)計(jì)如圖2所示。在Windows 10下獲取并顯示的數(shù)據(jù)有機(jī)器編號、機(jī)器名、IP地址、操作系統(tǒng)和類型、物理內(nèi)存和可使用內(nèi)存、物理硬盤數(shù)量及容量、邏輯分區(qū)及容量和分區(qū)剩余容量。刷新定時(shí)器用于監(jiān)視IP地址、可使用內(nèi)存以及邏輯分區(qū)剩余容量的實(shí)時(shí)變化。

    (2)Windows Server模塊

    模塊功能設(shè)計(jì)如圖3所示。本模塊用于作為服務(wù)器使用的Windows Server系統(tǒng)(目前使用的是Windows Server 2012 R2),有別于作為學(xué)生機(jī)使用的Windows 7、Windows 10系統(tǒng)。主體功能結(jié)構(gòu)中的“時(shí)鐘定時(shí)器”用于同步顯示日期和時(shí)間。

    (3)Windows 7模塊

    模塊功能設(shè)計(jì)如圖4所示。

    在Windows 7操作系統(tǒng)中,經(jīng)過透明處理后的窗體嵌入桌面前,須要停止Windows的“Desktop Window Manager Session Manager”服務(wù)。因而在本模塊中增加一個(gè)“Windows服務(wù)處理接口功能”子模塊,該子模塊的功能是提供停止、啟動(dòng)、復(fù)位已經(jīng)安裝的某項(xiàng)Windows服務(wù)的接口功能,即通過該子模塊去停止、啟動(dòng)和復(fù)位一個(gè)指定的Windows服務(wù)。同時(shí)該子模塊也提供查詢某項(xiàng)Windows服務(wù)是否已經(jīng)安裝。本軟件結(jié)束運(yùn)行前重新啟動(dòng)該服務(wù)。模塊的主體功能結(jié)構(gòu)與處理和Windows 10的相同。

    4 ? 方案實(shí)現(xiàn)(Solution realization)

    4.1 ? 使用WMI獲取相關(guān)數(shù)據(jù)

    (1)WMI編程接口

    WMI是Windows Management Instrumentation縮寫,又稱Windows管理規(guī)范。WMI的結(jié)構(gòu)體系如圖5所示。

    由圖5可見WMI的核心結(jié)構(gòu)由四部分組成:①WMI腳本庫,它的位置是%SystemRoot%\System32\Wbem\wbemdisp.dll。②公共信息模型對象管理器(Common Information Model Object Manager-CIMOM),是描述Windows操作系統(tǒng)構(gòu)成單元的對象數(shù)據(jù)庫。它的位置是%SystemRoot%\System32\Wbem\WinMgmt.exe。③公共信息模型(CIM)和WMI存儲(chǔ)庫。④WMI提供程序,它是一組DLL文件。位置是%SystemRoot%\System32\Wbem\*.dll。

    一般②③④被稱為CIM庫。所以通常將WMI看成有CIM庫和WMI腳本對象兩部分組成。

    (2)WMI使用方法及步驟

    WMI使用一般分為四步:①創(chuàng)建WMI對象腳本庫的指針實(shí)例。②調(diào)用實(shí)例方法,連接到CIM庫,同時(shí)指明要訪問資源的邏輯地址。③獲取托管資源,即WMI托管資源(類)的實(shí)例集合。④遍歷實(shí)例集合,獲取相關(guān)屬性值的數(shù)據(jù)。

    (3)C#使用WMI方法

    在VS2015的解決方案管理器[6-8]的項(xiàng)目中添加引用System.Management,并添加名字空間using System.Management。

    ManagementObject或ManagementClass:是公共信息模型(CIM)管理對象或類。管理類是一個(gè)WMI類,如Win32_PhysicalMemory和Win32_LogicalDisk,前者是物理內(nèi)存后者是邏輯分區(qū)。

    ManagementObjectSearcher:查詢檢索指定的對象的集合。也可以用來枚舉由ManagementObject或ManagementClass獲取的對象集合。

    下面是獲取邏輯分區(qū)及分區(qū)容量實(shí)現(xiàn)代碼:

    #region獲取邏輯分區(qū)及分區(qū)容量

    ///

    /// 獲取邏輯分區(qū)及分區(qū)容量

    ///

    ///

    public List GetDiskListInfo()

    {

    List hdp_list = null; // 定義一個(gè)邏輯分區(qū)結(jié)構(gòu)列表

    Try ? //指定分區(qū)的容量信息

    {

    // WQL 查詢類 SQL查詢 WMI類關(guān)鍵字“Win32_LogicalDisk”

    SelectQuery selectQuery = new SelectQuery("select * from Win32_LogicalDisk");

    // WMI查詢管理對象集合,用上述查詢結(jié)果實(shí)例化

    ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);

    // 定義 WMI 類對象集合,并獲取查詢結(jié)果(即:獲取所有邏輯分區(qū)集合)

    ManagementObjectCollection diskcollection = searcher.Get();

    if (diskcollection != null && diskcollection.Count > 0) // 邏輯分區(qū)數(shù)量大于0

    {

    hdp_list = new List(); // 給邏輯分區(qū)結(jié)構(gòu)列表分配空間

    HardDiskPartition harddisk = null; // 定義一個(gè)邏輯分區(qū)結(jié)構(gòu)列表臨時(shí)變量

    foreach (ManagementObject disk in diskcollection) // 變量獲取到的邏輯分區(qū)集合

    {

    int nType = Convert.ToInt32(disk["DriveType"]); // 獲取硬盤類型標(biāo)志值

    if (nType != Convert.ToInt32(DriveType.Fixed)) continue;// 硬盤標(biāo)志為”Fixed”(固定硬盤)

    else

    {

    harddisk = new HardDiskPartition(); // 給臨時(shí)變量分配空間

    // 獲取剩余空間并轉(zhuǎn)成GB(保留兩位小數(shù))

    harddisk.FreeSpace = ToGB(Convert.ToDouble(disk["FreeSpace"]), 1024.0, 2);

    // 獲取分區(qū)總空間并轉(zhuǎn)成GB(保留兩位小數(shù))

    harddisk.SumSpace = ToGB(Convert.ToDouble(disk["Size"]), 1024.0, 2);

    // 獲取邏輯分區(qū)名稱(如:C:、D:、E:)

    harddisk.PartitionName = disk["DeviceID"].ToString();

    hdp_list.Add(harddisk); // 加入列表

    harddisk.SetSumFreeSpace(Convert.ToDouble(disk["Size"]), Convert.ToDouble(disk["FreeSpace"]));

    }

    }

    }

    }

    catch (Exception) ?{ ? }

    return hdp_list;

    }

    #endregion

    4.2 ? 實(shí)現(xiàn)窗體嵌入桌面

    4.2.1 ? 識別窗體

    Windows操作系統(tǒng)有一套自成的窗體管理機(jī)制,實(shí)現(xiàn)對窗體結(jié)構(gòu)、窗體類型、窗體狀態(tài)、窗體間關(guān)系、窗體消息等進(jìn)行管理。

    在Windows操作系統(tǒng)運(yùn)行過程中,用戶每打開一個(gè)窗體,操作系統(tǒng)都會(huì)給這個(gè)窗體設(shè)定一個(gè)唯一的標(biāo)識符號用于管理,以此區(qū)分其他窗體。這個(gè)唯一的標(biāo)識符號稱之為句柄(Handle),是一個(gè)唯一的數(shù)值。程序員可用通過Microsoft提供的Win32應(yīng)用程序編程接口(Application Programming Interfaces,API)和窗體類名來獲取已經(jīng)打開的窗體句柄,通過對句柄的操作來完成由句柄對應(yīng)的窗體的操作。

    4.2.2 ? 相關(guān)API函數(shù)

    本設(shè)計(jì)中主要相關(guān)的API函數(shù):

    FindWindow:根據(jù)窗體類名和窗體標(biāo)題尋找窗體列表中第一個(gè)符合指定條件的頂級窗體,獲取該窗體的句柄。

    FindWindowEx:根據(jù)父窗體句柄和子窗體類名在窗體列表中尋找與指定條件相符的第一個(gè)子窗口。

    GetParent:根據(jù)子窗體句柄獲取其父窗體句柄。

    SetParent:給窗體重新指定一個(gè)父窗體。本軟件就是使用此函數(shù)實(shí)現(xiàn)將窗體嵌入桌面的。

    4.2.3 ? 桌面結(jié)構(gòu)

    要能夠?qū)崿F(xiàn)將窗體用SetParent函數(shù)嵌入桌面,首先就要能獲取到桌面的句柄。在Windows中,桌面也是作為窗體來管理的,可以通過FindWindow函數(shù)獲取到桌面句柄。

    (1)桌面組成

    要使用FindWindow函數(shù)獲取到桌面的句柄,就要知道桌面的窗體標(biāo)題和它的類名。通過查閱資料,得到了桌面的窗體標(biāo)題和類名分別是“Program Manager”和“Progman”。這樣使用FindWindow函數(shù)可以輕松獲取到桌面窗體Progman的句柄。

    為了更多的了解Windows桌面組成,以及Windows 7、Windows 10、Windows Server的桌面結(jié)構(gòu)是否相同。使用EnumWindows和EnumChildWindows等API函數(shù)做了一個(gè)工具程序,用它枚舉出系統(tǒng)中的所有窗體,并根據(jù)窗體之間的父子關(guān)系整理并保存到樹形列表控件TreeView中,因此桌面的組成結(jié)構(gòu)一目了然,分別在Windows 7、Windows 10和Windows Server 2012中運(yùn)行,得到如圖6所示的桌面窗體結(jié)構(gòu)。

    從圖6所示的Windows桌面結(jié)構(gòu)來看,桌面的頂層父窗體是Progman,窗體標(biāo)題是Program Manager,窗體可見且透明;第一層子窗體是SHELLDLL_DefView,沒有窗體標(biāo)題,窗體可見且透明;第二層子窗體是SysListView32(是包含桌面圖標(biāo)的窗體,該窗體實(shí)際上是ListView列表控件),窗體標(biāo)題是FolderView,窗體可見且透明;第三層子窗體是SysHeader32,沒有窗體標(biāo)題,窗體不可見。由此可見并非是網(wǎng)上和一些資料上說的三層結(jié)構(gòu),而是四層結(jié)構(gòu),且在Windows 7、Windows 10和Windows Server 2012 R2中具有相同的結(jié)構(gòu)。

    (2)選擇嵌入的桌面窗體

    根據(jù)圖6的桌面結(jié)構(gòu),從前到后的窗體排列順序是SysHeader32、SysListView32、SHELLDLL_DefView、Progman??梢?,除不可見窗體SysHeader32外,其余三個(gè)窗體均可作為本軟件窗體的父窗體。實(shí)際編程中選擇了Progman窗體作為本軟件窗體嵌入的父窗體,因?yàn)樵摯绑w是最后一層窗體,嵌入后不會(huì)影響和干擾軟件窗體所在位置的上層窗體的操作。

    (3)窗體透明處理

    C#的窗體控件中有兩個(gè)屬性用于控制窗體透明的,Opacity和TransparencyKey。前者用透明度來控制窗體透明,取值是0%—100%,窗體中的控件隨之一同透明。后者是窗體根據(jù)設(shè)定的關(guān)鍵顏色透明,窗體中的控件不隨之透明。

    this.Opacity = 0;窗體完全透明,窗體中所有控件均透明,不可見。

    this.Opacity = 1;窗體完全不透明(常規(guī)狀態(tài))。

    this.TransparencyKey = color.Red;窗體和窗體中的控件的紅色部分被透明掉。

    this.TransparencyKey = this.BackColor;窗體按照背景顏色透明。本設(shè)計(jì)使用此方式設(shè)置窗體透明,同時(shí)還須將窗體中的控件的背景顏色設(shè)置為Color.Transparent。

    (4)透明后窗體嵌入桌面

    窗體透明并嵌入桌面,只需要在窗體加載事件的合理位置執(zhí)行下面兩條命令即可。

    this.TransparencyKey = this.BackColor;

    SetParent(this.Handle, hDesktopWnd);

    可是在實(shí)際的測試運(yùn)行中并非如此。在Windows Server 2012 R2系統(tǒng)下窗體嵌入正常。

    在Windows 10系統(tǒng)中,執(zhí)行這兩條命令后,窗體可以嵌入桌面,但窗體不能完全透明,窗體區(qū)域呈無規(guī)律的花屏狀態(tài)。經(jīng)過多次調(diào)試,最終按如下處理后可以正常透明嵌入桌面。

    ①設(shè)計(jì)狀態(tài)將窗體的BackColor屬性設(shè)為透明顏色;

    ②窗體的Form_Load事件中執(zhí)行this.TransparencyKey = this.BackColor;

    ③窗體的Form_Resize事件中執(zhí)行SetParent(this.Handle, hDesktopWnd);

    在Windows 7操作系統(tǒng)中,執(zhí)行這兩條命令問題比較大,每次運(yùn)行后軟件窗體消失不見。按照在Windows 10中的方法處理后依然如故。使用斷點(diǎn)單步調(diào)試運(yùn)行,得到關(guān)鍵點(diǎn)的數(shù)據(jù)和變量狀態(tài)全部正常。后來注解掉this.TransparencyKey = this.BackColor;,再次運(yùn)行,在桌面的右上角可以看到非透明狀態(tài)的程序窗體。取消注解后再次運(yùn)行,窗體再次消失。可見問題就出在這條命令上。

    (5)問題的解決

    問題既然出現(xiàn)了,那么就要去找解決問題的方法。上網(wǎng)一查,發(fā)現(xiàn)有許多帖子都顯示遇到同樣的問題,也有些帖子給出一些解決方法,但是在Windows 7下都解決不了窗體透明嵌入桌面的問題。也有一些帖子認(rèn)為這是Windows 7系統(tǒng)或Visual Studio本身問題,問題看似無解了。

    經(jīng)過多天毫無目標(biāo)頭緒的修改,問題仍然沒有得到解決。近期機(jī)房有一門課程需要在Windows 10系統(tǒng)中安裝VMware虛擬機(jī),并要求虛擬一個(gè)Windows 7系統(tǒng)。安裝完成后,抱著試試看的想法將軟件拷貝到虛擬機(jī)的Windows 7系統(tǒng)中,雙擊運(yùn)行,眼前一亮,桌面右上角透明窗體顯示出現(xiàn)了。看來并非如網(wǎng)上帖子所說那樣無法實(shí)現(xiàn)。于是仔細(xì)對照虛擬機(jī)的Windows 7系統(tǒng)和實(shí)體Windows 7系統(tǒng)的各項(xiàng)設(shè)置和服務(wù),對比后發(fā)現(xiàn)Desktop Window Manager Session Manager(桌面窗體管理對話管理)服務(wù)是影響窗體透明嵌入桌面的根本原因。

    解決方法是:軟件在Windows 7系統(tǒng)中運(yùn)行時(shí),在窗體嵌入桌面前,通過程序停止Desktop Window Manager Session Manager服務(wù),軟件結(jié)束運(yùn)行前再啟動(dòng)該服務(wù)。

    4.3 ? VS2015中C#操控Windows服務(wù)接口的部分代碼

    #region 停止一項(xiàng)服務(wù)

    ///

    /// 停止一項(xiàng)服務(wù)

    ///

    /// 服務(wù)名稱

    public void StopService(String servicename)

    {

    try

    {

    sController = new ServiceController(servicename); // 服務(wù)控制變量指向?qū)?yīng)的服務(wù)

    if (sController.Status != ServiceControllerStatus.Stopped) // 判別此服務(wù)項(xiàng)是否是停止?fàn)顟B(tài)

    {

    sController.Stop(); // 停止服務(wù)

    sController.WaitForStatus(ServiceControllerStatus.Stopped); // 等待服務(wù)停止

    sController.Close(); // 切斷控制變量與服務(wù)的聯(lián)系

    }

    }

    catch { }

    }

    #endregion

    #region 啟動(dòng)一項(xiàng)服務(wù)

    ///

    /// 啟動(dòng)一項(xiàng)服務(wù)

    ///

    /// 服務(wù)名稱

    public void StartService(String servicename)

    {

    try

    {

    sController = new ServiceController(servicename); // 服務(wù)控制變量指向?qū)?yīng)的服務(wù)

    if (sController.Status == ServiceControllerStatus.Stopped) // 判別此服務(wù)項(xiàng)是否是已運(yùn)行狀態(tài)

    {

    sController.Start(); // 啟動(dòng)服務(wù)

    sController.WaitForStatus(ServiceControllerStatus.Running); // 等待服務(wù)啟動(dòng)完成

    sController.Close(); // 切斷控制變量與服務(wù)的聯(lián)系

    }

    }

    catch { }

    }

    #endregion

    5 ? 結(jié)論(Conclusion)

    基于WMI的機(jī)房信息可視化方案在本校機(jī)房管理中應(yīng)用后收到了一定效果。管理人員和任課教師通過它能夠了解并掌握每個(gè)分區(qū)系統(tǒng)信息,快速判別本分區(qū)是否滿足教學(xué)或考試要求。因此該方案在一定程度上幫助了機(jī)房管理員提高服務(wù)質(zhì)量和管理效率。

    參考資料(References)

    [1] Windows API參考手冊[DB/OL].http://www.office-cn.net/book/api/214.html,2017-8-24.

    [2] 李泉.現(xiàn)代API通往架構(gòu)師之門[M].清華大學(xué)出版社,2018.

    [3] 范文慶.Windows API開發(fā)詳解——函數(shù)、接口、編程實(shí)例[M].人民郵電出版社,2011.

    [4] WMI簡介[DB/OL]. https://docs.microsoft.com/zh-cn/windows-hardware/drivers/kernel/introduction-to-wmi,2017-6-16.

    [5] Marcin Policht.智慧東方工作室,譯.WMI技術(shù)指南[M].北京:機(jī)械工業(yè)出版社,2002.

    [6] Nagel C.,Evjen B..李銘,譯.C#高級編程(第7版)[M].北京:清華大學(xué)出版社,2010.

    [7] 明日科技.C#項(xiàng)目開發(fā)實(shí)戰(zhàn)入門(全彩版)[M].吉林:吉林大學(xué)出版社,2017.

    [8] Bruce Johnson.張衛(wèi)華,裴洪文,譯.Visual Studio 2015高級編程(第6版)[M].北京:清華大學(xué)出版社,2016.

    作者簡介:

    嚴(yán) ?強(qiáng)(1962-),男,本科,工程師.研究領(lǐng)域:工業(yè)控制,數(shù)據(jù)通信.

    猜你喜歡
    機(jī)房管理
    高職高專院校計(jì)算機(jī)房管理與維護(hù)
    商情(2016年49期)2017-03-01 20:28:31
    試論開源云計(jì)算openstack在高校計(jì)算機(jī)機(jī)房中的應(yīng)用
    計(jì)算機(jī)實(shí)訓(xùn)室應(yīng)用桌面虛擬化技術(shù)初探
    還原卡擴(kuò)展功能在提高機(jī)房管理效率上的應(yīng)用
    機(jī)房管理與維護(hù)淺談
    科技傳播(2016年19期)2016-12-27 15:20:09
    多媒體機(jī)房管理及維護(hù)
    關(guān)于機(jī)房云桌面管理的探索
    基于“云計(jì)算”技術(shù)的校園機(jī)房建設(shè)初探
    云計(jì)算技術(shù)在職業(yè)學(xué)校機(jī)房建設(shè)與管理中的思考
    小議機(jī)房管理員在計(jì)算機(jī)教學(xué)中的作用
    考試周刊(2016年23期)2016-05-13 15:31:38
    久久欧美精品欧美久久欧美| 日本免费a在线| 亚洲欧美一区二区三区黑人| 制服诱惑二区| 精品久久蜜臀av无| 一区二区三区国产精品乱码| 成人特级黄色片久久久久久久| 午夜福利18| 国产一卡二卡三卡精品| 夜夜爽天天搞| 一卡2卡三卡四卡精品乱码亚洲| 一级毛片精品| 妹子高潮喷水视频| 热re99久久国产66热| 午夜免费鲁丝| 美女扒开内裤让男人捅视频| 非洲黑人性xxxx精品又粗又长| 久久久国产成人免费| 一区二区三区精品91| 大型av网站在线播放| 18禁美女被吸乳视频| 大陆偷拍与自拍| 亚洲精品粉嫩美女一区| 免费在线观看完整版高清| 免费少妇av软件| 色综合亚洲欧美另类图片| 久久中文字幕人妻熟女| 极品人妻少妇av视频| 久久人妻av系列| 日韩精品中文字幕看吧| 久久久国产欧美日韩av| 久久久久久国产a免费观看| 麻豆av在线久日| 国产成人欧美在线观看| av电影中文网址| 欧美成人午夜精品| 亚洲片人在线观看| 亚洲第一青青草原| 久久精品91无色码中文字幕| 波多野结衣一区麻豆| 亚洲第一av免费看| 日韩欧美免费精品| 性少妇av在线| 国产1区2区3区精品| 中文亚洲av片在线观看爽| 亚洲精品一区av在线观看| 国产不卡一卡二| 久久中文看片网| 长腿黑丝高跟| 久久香蕉国产精品| 国产成人精品在线电影| 深夜精品福利| 国产私拍福利视频在线观看| 色综合亚洲欧美另类图片| 在线永久观看黄色视频| 国产不卡一卡二| 精品国产美女av久久久久小说| 国产蜜桃级精品一区二区三区| 精品乱码久久久久久99久播| 亚洲第一青青草原| 美女高潮喷水抽搐中文字幕| 国产精品二区激情视频| 亚洲av日韩精品久久久久久密| 免费搜索国产男女视频| 亚洲一区高清亚洲精品| 欧美乱色亚洲激情| 亚洲国产精品999在线| 99在线人妻在线中文字幕| 一本久久中文字幕| 精品久久久久久久久久免费视频| 日本黄色视频三级网站网址| 99精品欧美一区二区三区四区| av网站免费在线观看视频| 国产成人欧美在线观看| 亚洲国产精品合色在线| 国产蜜桃级精品一区二区三区| 满18在线观看网站| 国产成人啪精品午夜网站| 亚洲自偷自拍图片 自拍| 麻豆久久精品国产亚洲av| 久久天堂一区二区三区四区| 人成视频在线观看免费观看| 午夜成年电影在线免费观看| 少妇 在线观看| 男人舔女人下体高潮全视频| 日本 欧美在线| 国产亚洲欧美精品永久| 午夜福利影视在线免费观看| 国产在线观看jvid| 最近最新中文字幕大全免费视频| 亚洲国产中文字幕在线视频| 老熟妇乱子伦视频在线观看| 少妇被粗大的猛进出69影院| 国产成人影院久久av| 国产精品 欧美亚洲| 欧美 亚洲 国产 日韩一| 亚洲精品在线观看二区| or卡值多少钱| 无人区码免费观看不卡| 国产亚洲精品综合一区在线观看 | 国产日韩一区二区三区精品不卡| 变态另类成人亚洲欧美熟女 | 日韩欧美国产在线观看| 亚洲熟女毛片儿| 男女做爰动态图高潮gif福利片 | 欧美性长视频在线观看| 国产在线观看jvid| 性色av乱码一区二区三区2| 日本撒尿小便嘘嘘汇集6| 在线国产一区二区在线| 午夜福利18| 丝袜美腿诱惑在线| 精品日产1卡2卡| 女性被躁到高潮视频| 村上凉子中文字幕在线| 69av精品久久久久久| 成年女人毛片免费观看观看9| 咕卡用的链子| 巨乳人妻的诱惑在线观看| 成在线人永久免费视频| 国产亚洲欧美精品永久| 久久国产精品影院| 88av欧美| 黄色片一级片一级黄色片| 看免费av毛片| 午夜精品国产一区二区电影| 成人亚洲精品一区在线观看| 国内精品久久久久久久电影| 一本大道久久a久久精品| 精品久久久久久,| 搡老妇女老女人老熟妇| 国产精品 欧美亚洲| 亚洲欧美精品综合一区二区三区| 99热只有精品国产| 国产精品美女特级片免费视频播放器 | 变态另类成人亚洲欧美熟女 | 亚洲精品av麻豆狂野| 一区二区三区高清视频在线| 国产一区二区三区在线臀色熟女| 亚洲第一欧美日韩一区二区三区| av免费在线观看网站| 亚洲视频免费观看视频| 欧美人与性动交α欧美精品济南到| 亚洲欧美日韩高清在线视频| 国产精品亚洲美女久久久| 精品国产超薄肉色丝袜足j| 久久香蕉精品热| 夜夜夜夜夜久久久久| 国产亚洲欧美精品永久| 法律面前人人平等表现在哪些方面| 久久国产精品人妻蜜桃| 欧美黄色淫秽网站| 中文字幕色久视频| 久久久久久亚洲精品国产蜜桃av| 久9热在线精品视频| 日韩av在线大香蕉| 琪琪午夜伦伦电影理论片6080| 一级作爱视频免费观看| 精品久久久久久久久久免费视频| 12—13女人毛片做爰片一| 欧美激情极品国产一区二区三区| 在线观看免费午夜福利视频| 超碰成人久久| 一进一出好大好爽视频| 久久九九热精品免费| 中文字幕久久专区| 波多野结衣高清无吗| av在线天堂中文字幕| 成人国语在线视频| 又黄又爽又免费观看的视频| 免费在线观看完整版高清| 国产欧美日韩一区二区精品| 亚洲 欧美一区二区三区| 午夜精品国产一区二区电影| 久久久精品欧美日韩精品| 首页视频小说图片口味搜索| 一级a爱视频在线免费观看| 少妇被粗大的猛进出69影院| x7x7x7水蜜桃| 亚洲精品一卡2卡三卡4卡5卡| 色综合亚洲欧美另类图片| 香蕉国产在线看| 国产精品野战在线观看| 91成人精品电影| 俄罗斯特黄特色一大片| 国内久久婷婷六月综合欲色啪| 夜夜看夜夜爽夜夜摸| 啦啦啦 在线观看视频| 在线观看日韩欧美| 欧美乱码精品一区二区三区| 色综合亚洲欧美另类图片| 亚洲成av人片免费观看| 女人爽到高潮嗷嗷叫在线视频| 美女午夜性视频免费| 中国美女看黄片| 国产成人av激情在线播放| 久久欧美精品欧美久久欧美| 一级片免费观看大全| 91老司机精品| 999久久久国产精品视频| 天天添夜夜摸| 少妇的丰满在线观看| 亚洲色图av天堂| 国产91精品成人一区二区三区| 欧美乱妇无乱码| 一区二区三区国产精品乱码| avwww免费| 十八禁人妻一区二区| 怎么达到女性高潮| 久久久久久人人人人人| 精品国产乱码久久久久久男人| 成熟少妇高潮喷水视频| 999精品在线视频| 国产成人精品在线电影| 精品日产1卡2卡| 午夜两性在线视频| av有码第一页| 欧美丝袜亚洲另类 | 少妇被粗大的猛进出69影院| 日韩一卡2卡3卡4卡2021年| 久久精品亚洲熟妇少妇任你| 男女床上黄色一级片免费看| 婷婷丁香在线五月| 日本黄色视频三级网站网址| 亚洲av电影在线进入| 久久精品国产99精品国产亚洲性色 | 欧美+亚洲+日韩+国产| 久久精品国产亚洲av高清一级| 成人18禁在线播放| 乱人伦中国视频| 夜夜爽天天搞| 看免费av毛片| 涩涩av久久男人的天堂| 国产精品精品国产色婷婷| 午夜老司机福利片| 夜夜躁狠狠躁天天躁| 黄网站色视频无遮挡免费观看| 人人妻人人爽人人添夜夜欢视频| 久久精品国产99精品国产亚洲性色 | 午夜影院日韩av| 最近最新免费中文字幕在线| 中文字幕高清在线视频| 久久精品aⅴ一区二区三区四区| 亚洲色图 男人天堂 中文字幕| 波多野结衣巨乳人妻| 美女午夜性视频免费| 午夜精品在线福利| 美女国产高潮福利片在线看| 90打野战视频偷拍视频| 成人18禁高潮啪啪吃奶动态图| 黑人巨大精品欧美一区二区蜜桃| 色精品久久人妻99蜜桃| 日日夜夜操网爽| 成人三级黄色视频| 欧美日韩福利视频一区二区| 老熟妇乱子伦视频在线观看| 成人免费观看视频高清| 欧美另类亚洲清纯唯美| 日本五十路高清| a级毛片在线看网站| 免费观看精品视频网站| 久热这里只有精品99| 别揉我奶头~嗯~啊~动态视频| 国产伦一二天堂av在线观看| 国产精品九九99| 免费久久久久久久精品成人欧美视频| 少妇粗大呻吟视频| 一边摸一边抽搐一进一小说| 可以在线观看毛片的网站| 亚洲中文字幕一区二区三区有码在线看 | 亚洲精品一区av在线观看| 国产高清激情床上av| 高清黄色对白视频在线免费看| 色av中文字幕| 亚洲午夜理论影院| 男人舔女人的私密视频| 欧美日本中文国产一区发布| 91国产中文字幕| 午夜成年电影在线免费观看| av电影中文网址| 在线观看www视频免费| 一区福利在线观看| 一级片免费观看大全| e午夜精品久久久久久久| 无限看片的www在线观看| 日韩欧美一区二区三区在线观看| 久久中文字幕人妻熟女| 国产精品一区二区在线不卡| 日本 av在线| av福利片在线| 黄色毛片三级朝国网站| 99re在线观看精品视频| 亚洲成a人片在线一区二区| 在线观看www视频免费| 日本a在线网址| 免费在线观看日本一区| 他把我摸到了高潮在线观看| 老司机午夜福利在线观看视频| 亚洲熟女毛片儿| 欧美日韩亚洲综合一区二区三区_| 老司机午夜十八禁免费视频| 高潮久久久久久久久久久不卡| 久久精品91无色码中文字幕| 少妇的丰满在线观看| 91九色精品人成在线观看| 美女免费视频网站| 午夜福利在线观看吧| 亚洲国产精品久久男人天堂| 国产精品国产高清国产av| 国产亚洲精品第一综合不卡| or卡值多少钱| 欧美成狂野欧美在线观看| 亚洲av电影不卡..在线观看| 一区二区三区国产精品乱码| 久久久久久人人人人人| 一二三四社区在线视频社区8| 国产成人精品无人区| 亚洲免费av在线视频| 91老司机精品| 亚洲一区二区三区色噜噜| 深夜精品福利| 成年人黄色毛片网站| 中文字幕久久专区| 久久久久久人人人人人| 亚洲无线在线观看| 婷婷丁香在线五月| 最好的美女福利视频网| 国产成人一区二区三区免费视频网站| 久久婷婷成人综合色麻豆| 免费搜索国产男女视频| 老司机深夜福利视频在线观看| АⅤ资源中文在线天堂| 丰满人妻熟妇乱又伦精品不卡| 亚洲欧美日韩无卡精品| 国产亚洲欧美98| 女人被躁到高潮嗷嗷叫费观| 大香蕉久久成人网| 国产精品1区2区在线观看.| 天天添夜夜摸| 中文字幕久久专区| 深夜精品福利| 国内久久婷婷六月综合欲色啪| 91成人精品电影| 狠狠狠狠99中文字幕| 色播在线永久视频| 国产精品九九99| 制服人妻中文乱码| 国产一卡二卡三卡精品| 亚洲第一电影网av| 亚洲第一av免费看| 首页视频小说图片口味搜索| 国产精品影院久久| 国产成人av教育| 亚洲欧美激情在线| 老鸭窝网址在线观看| 99精品在免费线老司机午夜| 99国产精品免费福利视频| 国内精品久久久久久久电影| 亚洲专区国产一区二区| 免费搜索国产男女视频| 日韩精品中文字幕看吧| 国产伦人伦偷精品视频| 好看av亚洲va欧美ⅴa在| 天堂√8在线中文| 级片在线观看| 欧美黑人精品巨大| 国产av一区在线观看免费| 国产xxxxx性猛交| 免费不卡黄色视频| 最好的美女福利视频网| 欧美色欧美亚洲另类二区 | 欧美成人一区二区免费高清观看 | av网站免费在线观看视频| 中文字幕精品免费在线观看视频| 亚洲性夜色夜夜综合| 麻豆一二三区av精品| 中文字幕人妻丝袜一区二区| 亚洲精品国产一区二区精华液| 日本黄色视频三级网站网址| 19禁男女啪啪无遮挡网站| 欧美日韩一级在线毛片| 看黄色毛片网站| 91精品三级在线观看| 国产av一区在线观看免费| 日韩精品免费视频一区二区三区| 精品日产1卡2卡| 精品久久久久久,| 免费在线观看亚洲国产| 国产男靠女视频免费网站| 久99久视频精品免费| 身体一侧抽搐| 青草久久国产| 亚洲三区欧美一区| 欧美成狂野欧美在线观看| 一区二区三区激情视频| 91国产中文字幕| 国产精品亚洲一级av第二区| 91国产中文字幕| 黄网站色视频无遮挡免费观看| 久久精品成人免费网站| 少妇 在线观看| a级毛片在线看网站| 岛国在线观看网站| 亚洲黑人精品在线| 欧美日韩精品网址| 国产精品 国内视频| 日韩精品中文字幕看吧| 亚洲国产欧美一区二区综合| 在线观看66精品国产| 母亲3免费完整高清在线观看| 国产精品乱码一区二三区的特点 | 一区二区三区激情视频| 如日韩欧美国产精品一区二区三区| 亚洲人成网站在线播放欧美日韩| 成人手机av| 久久久久久免费高清国产稀缺| 久久天躁狠狠躁夜夜2o2o| 97人妻天天添夜夜摸| 69av精品久久久久久| 亚洲国产精品合色在线| 欧美在线一区亚洲| 国产精品98久久久久久宅男小说| 亚洲精品久久国产高清桃花| 国产亚洲av高清不卡| 1024视频免费在线观看| 日韩中文字幕欧美一区二区| 久久久久国内视频| 欧美成人午夜精品| 给我免费播放毛片高清在线观看| 悠悠久久av| 国产精品美女特级片免费视频播放器 | 丝袜美腿诱惑在线| 老司机深夜福利视频在线观看| 免费女性裸体啪啪无遮挡网站| 超碰成人久久| 高清黄色对白视频在线免费看| 色婷婷久久久亚洲欧美| 久久久久久久精品吃奶| 亚洲av五月六月丁香网| 十八禁人妻一区二区| 中文亚洲av片在线观看爽| 一区二区三区精品91| 亚洲熟女毛片儿| 好男人在线观看高清免费视频 | 国产成年人精品一区二区| 精品久久久久久成人av| 一进一出抽搐gif免费好疼| 日韩av在线大香蕉| 97人妻天天添夜夜摸| 麻豆av在线久日| 在线观看免费视频日本深夜| 给我免费播放毛片高清在线观看| 亚洲 国产 在线| 午夜老司机福利片| 国产高清videossex| 欧美黑人欧美精品刺激| 免费一级毛片在线播放高清视频 | 国产亚洲精品一区二区www| 久久人妻福利社区极品人妻图片| 国产精品香港三级国产av潘金莲| 人成视频在线观看免费观看| 久热爱精品视频在线9| www.www免费av| 久久香蕉精品热| 国产熟女午夜一区二区三区| 大型黄色视频在线免费观看| 欧美色欧美亚洲另类二区 | 最近最新中文字幕大全电影3 | 国产一区二区三区在线臀色熟女| 超碰成人久久| 十八禁人妻一区二区| 国产一区二区三区视频了| 中文字幕人妻熟女乱码| 最好的美女福利视频网| 亚洲avbb在线观看| 1024香蕉在线观看| 日日夜夜操网爽| 嫩草影院精品99| 国产精品乱码一区二三区的特点 | 欧美一区二区精品小视频在线| 美女 人体艺术 gogo| 波多野结衣av一区二区av| 国产激情久久老熟女| 色综合亚洲欧美另类图片| 精品久久久久久久久久免费视频| 亚洲精品粉嫩美女一区| 成人永久免费在线观看视频| 久久久久久久久久久久大奶| 国产视频一区二区在线看| 好男人在线观看高清免费视频 | 岛国视频午夜一区免费看| 精品欧美一区二区三区在线| 黄色女人牲交| 国产99久久九九免费精品| 国产黄a三级三级三级人| 国产成人av激情在线播放| 久久久久久国产a免费观看| 午夜福利影视在线免费观看| 免费搜索国产男女视频| 国产精品99久久99久久久不卡| 91国产中文字幕| 好男人电影高清在线观看| 久9热在线精品视频| 国产精品98久久久久久宅男小说| 18禁美女被吸乳视频| 香蕉久久夜色| 黄色视频,在线免费观看| 欧美激情久久久久久爽电影 | av免费在线观看网站| 黄片大片在线免费观看| 9热在线视频观看99| 99国产精品一区二区蜜桃av| 亚洲欧美日韩另类电影网站| 青草久久国产| 男人舔女人的私密视频| 自拍欧美九色日韩亚洲蝌蚪91| www.自偷自拍.com| 精品午夜福利视频在线观看一区| 国产成年人精品一区二区| 国产成人精品久久二区二区免费| 亚洲av电影在线进入| 色老头精品视频在线观看| 大香蕉久久成人网| 亚洲中文字幕一区二区三区有码在线看 | 精品无人区乱码1区二区| 乱人伦中国视频| 欧美成人免费av一区二区三区| 色综合亚洲欧美另类图片| 国产日韩一区二区三区精品不卡| 亚洲性夜色夜夜综合| 国产亚洲精品综合一区在线观看 | 男女午夜视频在线观看| 国产精品永久免费网站| 亚洲欧美日韩无卡精品| 成人18禁高潮啪啪吃奶动态图| 久久久久久久午夜电影| 国产亚洲精品综合一区在线观看 | 一本综合久久免费| 人成视频在线观看免费观看| 亚洲国产欧美日韩在线播放| 首页视频小说图片口味搜索| 91成人精品电影| 91大片在线观看| 琪琪午夜伦伦电影理论片6080| 在线观看舔阴道视频| 中国美女看黄片| 午夜两性在线视频| x7x7x7水蜜桃| 亚洲第一av免费看| 一级毛片女人18水好多| 两个人视频免费观看高清| 天天一区二区日本电影三级 | 搞女人的毛片| 亚洲精品中文字幕一二三四区| 午夜两性在线视频| 高清毛片免费观看视频网站| 自线自在国产av| 国产亚洲欧美98| 亚洲,欧美精品.| 怎么达到女性高潮| 亚洲aⅴ乱码一区二区在线播放 | 黑人欧美特级aaaaaa片| 精品一品国产午夜福利视频| 亚洲男人的天堂狠狠| 亚洲 国产 在线| 国产精品 国内视频| ponron亚洲| 欧美黄色淫秽网站| 亚洲久久久国产精品| 亚洲专区字幕在线| 久久天躁狠狠躁夜夜2o2o| 亚洲 国产 在线| 可以免费在线观看a视频的电影网站| 深夜精品福利| 午夜日韩欧美国产| 亚洲人成电影观看| 国产午夜福利久久久久久| 亚洲一区高清亚洲精品| 午夜福利,免费看| 国产精品亚洲美女久久久| 19禁男女啪啪无遮挡网站| 男男h啪啪无遮挡| 黄色视频,在线免费观看| 我的亚洲天堂| 人人妻人人爽人人添夜夜欢视频| 午夜久久久在线观看| 两个人免费观看高清视频| 三级毛片av免费| 国产亚洲精品第一综合不卡| 日韩欧美三级三区| 国产精品一区二区在线不卡| 一二三四社区在线视频社区8| 99久久99久久久精品蜜桃| 国产精品二区激情视频| 中文字幕av电影在线播放| 国产精品日韩av在线免费观看 | 欧美亚洲日本最大视频资源| 人人妻人人澡人人看| 色哟哟哟哟哟哟| 美女 人体艺术 gogo| 一级黄色大片毛片| av福利片在线| 此物有八面人人有两片| 久99久视频精品免费| 免费在线观看影片大全网站| 嫁个100分男人电影在线观看| 成人国产一区最新在线观看| 午夜精品久久久久久毛片777| 日本免费一区二区三区高清不卡 | 老熟妇仑乱视频hdxx| 午夜精品在线福利| 久久人人97超碰香蕉20202| www.www免费av| 亚洲熟女毛片儿| 香蕉国产在线看|