• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于VB和批處理的機(jī)房計(jì)算機(jī)管理軟件的設(shè)計(jì)與實(shí)現(xiàn)

      2010-11-27 02:15:04劉金明鹿曉力
      關(guān)鍵詞:批處理批量控件

      劉金明,鹿曉力

      (1.吉林電子信息職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)系,吉林 吉林132021;2.鄭州輕工業(yè)學(xué)院 電氣信息工程學(xué)院,河南 鄭州 450002)

      機(jī)房計(jì)算機(jī)管理是一項(xiàng)復(fù)雜繁重的工作.在日常的管理與維護(hù)過程中,管理員經(jīng)常要對(duì)數(shù)十臺(tái)甚至百余臺(tái)計(jì)算機(jī)進(jìn)行批量開機(jī)、關(guān)機(jī)和重新啟動(dòng)操作,同時(shí)還要做好計(jì)算機(jī)網(wǎng)絡(luò)的維護(hù),保證局域網(wǎng)的連通順暢.若能設(shè)計(jì)出一款界面友好、簡(jiǎn)捷易用的機(jī)房計(jì)算機(jī)管理軟件來幫助管理員完成繁復(fù)的工作,就可以將其從大量的重復(fù)勞動(dòng)中解放出來,也提高了機(jī)房的管理效率和管理水平.

      將適合編寫圖形化界面程序的Visual Basic(簡(jiǎn)稱VB)與批處理的強(qiáng)大功能相結(jié)合,做到優(yōu)勢(shì)互補(bǔ),便可設(shè)計(jì)出基于VB與批處理的機(jī)房計(jì)算機(jī)管理軟件,實(shí)現(xiàn)上述愿望.

      1 VB和批處理聯(lián)合進(jìn)行軟件開發(fā)的思想

      VB是由微軟公司開發(fā)的一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語言,適合開發(fā) Windows 環(huán)境下的各類應(yīng)用程序.事件驅(qū)動(dòng)適用于具有圖形用戶界面(GUI)的軟件編程方式,采用VB語言,利用事件驅(qū)動(dòng)的編程機(jī)制,可以高效地開發(fā)出功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件[1-3].

      批處理(也稱為批處理腳本或批處理程序)文件的擴(kuò)展名為 .bat或 .cmd,它由Windows系統(tǒng)內(nèi)嵌的命令解釋器cmd.exe解釋運(yùn)行.批處理腳本支持順序、分支、循環(huán)3種基本控制結(jié)構(gòu),其中的每條語句都是命令解釋器能夠單獨(dú)執(zhí)行的具有一定功能的命令.一個(gè)功能強(qiáng)大的批處理就是在依據(jù)實(shí)際需要選用命令語句的基礎(chǔ)上,巧妙利用各種控制結(jié)構(gòu)對(duì)其加以有機(jī)組合而設(shè)計(jì)出的腳本[4].

      由于VB與批處理二者相差較遠(yuǎn),通常不會(huì)將其聯(lián)合起來進(jìn)行軟件開發(fā),但考慮到VB適用于開發(fā)具有圖形界面的程序,而批處理在網(wǎng)絡(luò)及遠(yuǎn)程控制方面具有諸如ping、shutdown等方便實(shí)用的命令可供利用,只要能解決兩種不同程序間的數(shù)據(jù)傳遞問題,便可將二者聯(lián)合進(jìn)行軟件開發(fā),使其優(yōu)勢(shì)互補(bǔ).

      2 軟件的總體設(shè)計(jì)

      2.1 功能模塊劃分

      根據(jù)對(duì)機(jī)房計(jì)算機(jī)管理員日常工作內(nèi)容的調(diào)查了解及綜合歸納,計(jì)算機(jī)管理軟件的主要任務(wù)是對(duì)計(jì)算機(jī)實(shí)施遠(yuǎn)程控制,它應(yīng)包括批量開機(jī)(包含MAC地址掃描和遠(yuǎn)程喚醒兩個(gè)子模塊)、批量關(guān)機(jī)、批量重啟、取消關(guān)機(jī)/重啟、局域網(wǎng)連通性檢測(cè)、短消息發(fā)送和參數(shù)配置等7個(gè)功能模塊.

      2.2 功能模塊的實(shí)現(xiàn)方法

      由于命令解釋器固有命令對(duì)上述要實(shí)現(xiàn)的功能的支持,批量關(guān)機(jī)、批量重啟、取消關(guān)機(jī)/重啟、局域網(wǎng)連通性檢測(cè)和短消息發(fā)送等5個(gè)模塊以及MAC地址掃描子模塊基于批處理進(jìn)行設(shè)計(jì)較為簡(jiǎn)便,各模塊獨(dú)立形成批處理腳本,由人機(jī)界面通過Shell函數(shù)調(diào)用執(zhí)行.

      遠(yuǎn)程喚醒子模塊因涉及網(wǎng)絡(luò)協(xié)議及數(shù)據(jù)包的形成與發(fā)送,參數(shù)配置模塊本身是人機(jī)界面的一部分,則二者采用VB設(shè)計(jì)實(shí)現(xiàn)比較合適.

      圖1給出了該軟件的功能結(jié)構(gòu)示意圖,機(jī)房管理員通過人機(jī)界面調(diào)用執(zhí)行諸功能模塊,文本文件組則在VB程序與批處理程序間起著數(shù)據(jù)傳遞中介的作用.

      圖1 機(jī)房計(jì)算機(jī)管理軟件功能結(jié)構(gòu)示意Fig.1 The schematic diagram of function structure of the software for computer room management

      3 軟件的詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)

      3.1 批量關(guān)機(jī)、批量重啟和取消關(guān)機(jī)/重啟模塊

      批量關(guān)機(jī)模塊逐一檢測(cè)各計(jì)算機(jī)是否處于開機(jī)狀態(tài),若開機(jī),則將其關(guān)閉;批量重啟模塊逐一檢測(cè)各計(jì)算機(jī)是否處于開機(jī)狀態(tài),若開機(jī),則將其重啟;取消關(guān)機(jī)/重啟模塊則能取消此前的關(guān)機(jī)或重啟操作.3個(gè)模塊均使用了命令解釋器提供的shutdown命令,該命令帶-s和-m參數(shù)可實(shí)現(xiàn)遠(yuǎn)程關(guān)機(jī),帶-r和-m參數(shù)可實(shí)現(xiàn)遠(yuǎn)程重啟,帶-a和-m參數(shù)可取消此前的關(guān)機(jī)或重啟操作,還可通過-t參數(shù)設(shè)置關(guān)機(jī)延時(shí)的時(shí)長(zhǎng).以批量關(guān)機(jī)模塊為例,主要代碼如下:

      for /l %%i in (!d!,1,!e!) do (

      ping -n 1 !a!.!b!.!c!.%%i>nul

      if !errorlevel!== 0 shutdown -t !time! -s

      -m !a!.!b!.!c!.%%i

      )

      3.2 局域網(wǎng)連通性檢測(cè)模塊[5]

      命令解釋器中ping命令的工作原理是向?qū)Ψ接?jì)算機(jī)發(fā)送ICMP數(shù)據(jù)包,依據(jù)收到包的數(shù)量來判斷網(wǎng)絡(luò)的連通性.本模塊可逐一檢測(cè)局域網(wǎng)中計(jì)算機(jī)的連通性,并將檢測(cè)信息和因故障未入網(wǎng)計(jì)算機(jī)的IP分別保存在文本文件testinf.txt 和failurereport.txt中,以備查看.主要代碼如下:

      for /l %%i in (!d!,1,!e!) do (

      ping !a!.!b!.!c!.%%i>>testinf.txt

      if !errorlevel!==1 echo !a!.!b!.!

      c!.%%i>>failurereport.txt

      )

      3.3 局域網(wǎng)消息發(fā)送模塊

      局域網(wǎng)消息發(fā)送功能需要Windows系統(tǒng)信使服務(wù)(Messenger Service)的支持,當(dāng)該服務(wù)開啟時(shí),在發(fā)送端使用net send命令發(fā)送消息,接收端便彈出用于顯示消息的名為“信使服務(wù)”的對(duì)話框.本模塊先從文本文件message.txt中提取待發(fā)送的消息內(nèi)容(消息內(nèi)容是由人機(jī)界面接受并保存于message.txt文件中的),再向局域網(wǎng)中全部計(jì)算機(jī)發(fā)送該消息.主要代碼如下:

      set /P mess=

      net send * "!mess!"

      3.4 MAC地址掃描子模塊[6]

      命令解釋器中的nbtstat命令,可通過對(duì)方計(jì)算機(jī)的IP地址查看NetBIOS的相關(guān)信息,其中含有對(duì)方網(wǎng)卡的MAC地址,findstr命令則可在此基礎(chǔ)上將MAC地址單獨(dú)提取出來.本模塊通過聯(lián)合使用nbtstat和findstr命令,獲取所有處于開機(jī)狀態(tài)計(jì)算機(jī)的MAC地址,保存于文本文件中,供遠(yuǎn)程喚醒子模塊使用.主要代碼如下:

      for /l %%i in (!d!,1,!e!) do (

      ping -n 1 !a!.!b!.!c!.%%i>nul

      if !errorlevel!==0

      nbtstat -a !a!.!b!.!c!.%%i>>mac1.txt

      )

      findstr "MAC" mac1.txt>>mac2.txt

      3.5 遠(yuǎn)程喚醒子模塊[7]

      遠(yuǎn)程喚醒(Wake-on-LAN,WOL) 是在計(jì)算機(jī)電源、主板和網(wǎng)卡等設(shè)備支持該功能的前提下,通過向處于半工作狀態(tài)的網(wǎng)卡發(fā)送特定數(shù)據(jù)包,以實(shí)現(xiàn)計(jì)算機(jī)從停機(jī)狀態(tài)自動(dòng)啟動(dòng)的一種遠(yuǎn)程控制技術(shù).所發(fā)特定數(shù)據(jù)包的內(nèi)容是FFFFFFFFFFFF加上16遍對(duì)方網(wǎng)卡的MAC地址,所需MAC地址由此前介紹過的MAC地址掃描子模塊來提供.假設(shè)對(duì)方網(wǎng)卡的MAC地址為00-11-22-33-44-55,那么數(shù)據(jù)包的內(nèi)容應(yīng)為:FFFFFFFFFFFF00112233445500112233445500 112233445500112233445500112233445500112233445 500112233445500112233445500112233445500112233 445500112233445500112233445500112233445500112 2334455001122334455001122334455.網(wǎng)卡收到數(shù)據(jù)包后與自己的MAC地址相比較,如果相同,便會(huì)向主板發(fā)送開機(jī)信號(hào),使計(jì)算機(jī)自動(dòng)開啟.本模塊用到VB中的Winsock控件,該控件可通過使用TCP或UDP協(xié)議與遠(yuǎn)程計(jì)算機(jī)交換數(shù)據(jù).主要代碼如下:

      With Winsock1

      .RemoteHost = "255.255.255.255"

      ’廣播發(fā)送

      .Protocol = sckUDPProtocol

      ’使用UDP協(xié)議

      .RemotePort = 7 ’接收端端口號(hào)

      .LocalPort = 7 ’發(fā)送端端口號(hào)

      .Bind 7 ’綁定端口

      End With

      3.6 參數(shù)配置模塊

      參數(shù)配置模塊用于接受并保存管理員對(duì)軟件參數(shù)的設(shè)置,使軟件能夠適應(yīng)不同機(jī)房的具體情況.修改后的參數(shù)會(huì)通過Label控件即時(shí)顯示于界面上,并同時(shí)保存在相應(yīng)的文本文件中,供其他功能模塊使用.為保證輸入?yún)?shù)形式上的合法性,本模塊設(shè)計(jì)了相應(yīng)的判斷機(jī)制,當(dāng)輸入非法時(shí),會(huì)有消息框給出提示.

      3.7 人機(jī)界面

      人機(jī)界面使用若干Text控件、Label控件和Command控件實(shí)現(xiàn)交互,功能相近或圍繞同一功能設(shè)置的控件置于同一框架中,清晰簡(jiǎn)潔、便于操作.當(dāng)管理員單擊標(biāo)明功用的按鈕時(shí),會(huì)通過Shell函數(shù)調(diào)用執(zhí)行由批處理編寫的相應(yīng)功能模塊,完成相應(yīng)任務(wù).以調(diào)用執(zhí)行MAC地址掃描子模塊為例,主要代碼如下:

      Dim i

      i = Shell("macscan.bat", 0)

      其中,“0”表示窗口隱藏,即看不到批處理模塊運(yùn)行時(shí)的窗口.

      3.8 VB程序與批處理程序間的數(shù)據(jù)傳遞

      VB與批處理兩種不同語言編寫的程序間是無法通過直接讀取對(duì)方變量的值來傳遞數(shù)據(jù)的,好在VB與批處理均可對(duì)文本文件進(jìn)行讀寫操作,于是可以利用文本文件做中介實(shí)現(xiàn)數(shù)據(jù)傳遞.VB采用Line Input # 語句和Write # 語句分別來實(shí)現(xiàn)文件的讀和寫,批處理使用重定向符號(hào)<、>、>>來讀寫文件.例如,參數(shù)配置模塊接收輸入的IP地址后,要先寫入文本文件后才能被基于批處理的功能模塊讀取使用.VB向文本文件寫數(shù)據(jù)的代碼如下:

      Open "ipa.txt" For Output As #1

      ’向文件ipa.txt寫數(shù)據(jù)

      ipw1 = Text1.Text

      Write #1, ipw1

      Close #1

      Open "ipb.txt " For Output As #1

      ’向文件ipb.txt寫數(shù)據(jù)

      ipw2 = Text2.Text

      Write #1, ipw2

      Close #1

      Open "ipc.txt " For Output As #1

      ’向文件ipc.txt寫數(shù)據(jù)

      ipw3 = Text3.Text

      Write #1, ipw3

      Close #1

      Open "ipd.txt " For Output As #1

      ’向文件ipd.txt寫數(shù)據(jù)

      ipw4 = Text4.Text

      Write #1, ipw4

      Close #1

      批處理從文本文件讀數(shù)據(jù)的代碼如下:

      set /p a=

      set /p b=

      set /p c=

      set /p d=

      4 結(jié) 語

      本文設(shè)計(jì)實(shí)現(xiàn)的機(jī)房計(jì)算機(jī)管理軟件,發(fā)掘了批處理的強(qiáng)大功能,利用了VB在開發(fā)具有圖形用戶界面軟件方面的優(yōu)勢(shì),在VB與批處理聯(lián)合進(jìn)行程序開發(fā)方面做出了探索.開發(fā)出的軟件具有使用簡(jiǎn)便、占用空間小、綠色免安裝等特點(diǎn).目前,該軟件已應(yīng)用于機(jī)房計(jì)算機(jī)的管理,其各項(xiàng)功能運(yùn)行良好,部分性能優(yōu)于同類商業(yè)軟件,能有效降低管理員的工作強(qiáng)度,提高機(jī)房的管理效率和管理水平.該軟件設(shè)計(jì)思想同樣可用于其他數(shù)字化設(shè)備的批量管理.

      參考文獻(xiàn):

      [1] 孫秀梅,安劍,劉彬彬.Visual Basic開發(fā)技術(shù)大全[M].2版.北京:人民郵電出版社,2009.

      [2] 劉寶山,李丕瑾.程序設(shè)計(jì)基礎(chǔ)——Visual Basic 6.0案例教程[M].2版.北京:機(jī)械工業(yè)出版社,2009.

      [3] 梁麗平,黃平,黃振中.Visual Basic程序設(shè)計(jì)[M].2版.北京:北京理工大學(xué)出版社,2007.

      [4] DOS批處理高級(jí)教程精選合編[DB/OL]. http://wenku.baidu.com/view/e3a92bf90242a8956bece481.html.

      [5] TIMOTHY P.自學(xué)TCP/IP十四日通[M].北京:學(xué)苑出版社,1994.

      [6] 鄒縣芳,張發(fā)凌.DOS在網(wǎng)絡(luò)管理及故障診斷中的典型應(yīng)用[M].北京:人民郵電出版社,2007.

      [7] AMD.Magic Packet Technology white paper [DB/OL]. http://www.amd.com/products/npd/overview/20212.html.1998.

      猜你喜歡
      批處理批量控件
      批量提交在配置分發(fā)中的應(yīng)用
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      淺議高校網(wǎng)銀批量代發(fā)
      基于PSD-BPA的暫態(tài)穩(wěn)定控制批處理計(jì)算方法的實(shí)現(xiàn)
      基于AUTOIT3和VBA的POWERPOINT操作題自動(dòng)批量批改
      考慮價(jià)差和再制造率的制造/再制造混合系統(tǒng)生產(chǎn)批量研究
      就這樣玩會(huì)VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      批處理天地.文件分類超輕松
      批處理天地.批量為文件更名(續(xù))
      在PowerBuUder中利用WinSock控件制作簡(jiǎn)單的Web服務(wù)器
      永川市| 固镇县| 镇康县| 兰西县| 江陵县| 华阴市| 墨脱县| 奇台县| 南通市| 马鞍山市| 普安县| 措勤县| 金秀| 固原市| 西贡区| 福海县| 南木林县| 凤台县| 仁布县| 昭通市| 布拖县| 来宾市| 信阳市| 巴彦县| 无极县| 海丰县| 菏泽市| 蒙城县| 濉溪县| 浦江县| 博客| 通城县| 绥中县| 洪雅县| 绥滨县| 冕宁县| 象山县| 铜梁县| 晋城| 海丰县| 县级市|