亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

使用vbscript腳本在表單中進行選擇的代碼

2020-06-26 18:08:54
字體:
來源:轉載
供稿:網友
問: 
嗨,Scripting Guy!我想創建一個帶有四個單選按鈕的表單,其中每個按鈕各代表一臺計算機??梢赃x擇一個單選按鈕,單擊另一個按鈕,然后腳本將在所選的計算機上運行。我怎樣才能做到? 

-- CW 

答: 
嗨,CW。如果我們所說的只是 VBScript 和 Windows Script Host,那么這個問題很簡單:辦不到。除了顯示消息框以外,VBScript 和 WSH 都無法創建圖形用戶界面;沒辦法通過腳本使用單選按鈕、列表框、下拉列表以及其他圖形元素。 

但是——噢,你們以前一定見過這種情況。沒錯:我們先告訴您某事辦不到,然后再告訴您做事的方法。(嗨,每個人多需要點技巧,不是嗎?)沒錯:雖然您不會只用 VBScript 實現這一點,但是完全可以使用 HTA(HTML 應用程序)來實現。 

我們今天不會花太多時間來談論 HTA;如果您對此感興趣,可以查找大約一年前我們針對該主題推出的網絡廣播??梢哉f,HTA 使我們能夠將 Internet Explorer 和腳本代碼結合在一起,并反過來為腳本提供圖形用戶界面。雖然還有一些方法可以將圖形用戶界面合并到腳本中,但是對于才開始涉足 GUI 開發的用戶來說,這可能是最簡單的方法。 

讓我們先提供 HTA 的代碼,然后再解釋其工作原理。此示例 HTA 顯示了四個單選按鈕,其中每個按鈕各代表一臺計算機。選擇一臺計算機,并單擊一個“Run Script(運行腳本)”按鈕;完成后,將運行一個子例程。該程序將連接到已選定的計算機,然后報告該計算機上所安裝的操作系統的名稱。很不錯吧?如要了解其工作原理,復制該代碼,將其粘貼到記事本中,然后以 .hta 文件擴展名(比如:os_name.hta)保存文件。不要使用 .vbs 文件擴展名;那樣行不通。擴展名必須是 .hta。 

復制代碼代碼如下:

<SCRIPT LANGUAGE="VBScript">  

Sub RunScript  

    If ComputerOption(0).Checked Then  
        strComputer = ComputerOption(0).Value  
    End If  
    If ComputerOption(1).Checked Then  
        strComputer = ComputerOption(1).Value  
    End If  
    If ComputerOption(2).Checked Then  
        strComputer = ComputerOption(2).Value  
    End If  
    If ComputerOption(3).Checked Then  
        strComputer = ComputerOption(3).Value  
    End If  

    If strComputer = "" Then  
        Exit Sub  
    End If  

    Set objWMIService = GetObject _  
        ("winmgmts://" & strComputer & "/root/cimv2")  
    Set colItems = objWMIService.ExecQuery _  
        ("Select * From Win32_OperatingSystem")  
    For Each objItem in ColItems  
        Msgbox objItem.Caption  
    Next  

End Sub  

Sub CancelScript  
   Self.Close()  
End Sub  

</SCRIPT>  

<BODY>  
<input type="radio" name="ComputerOption" value="atl-ws-01">atl-ws-01<BR>  
<input type="radio" name="ComputerOption" value="atl-ws-02">atl-ws-02<BR>  
<input type="radio" name="ComputerOption" value="atl-ws-03">atl-ws-03<BR>  
<input type="radio" name="ComputerOption" value="atl-ws-04">atl-ws-04<P>  

<input id=runbutton class="button" type="button" value="Run Script" name="ok_button"   
onClick="RunScript">  
     
<input id=runbutton class="button" type="button" value="Cancel" name="cancel_button"   
onClick="CancelScript">  

</BODY> 

那么該代碼包含哪些內容呢?我們可以將該代碼分為四部分:其中有兩個部分使用 HTML 標記來實現單選按鈕以及“Run Script(運行腳本)”和“Cancel(取消)”按鈕,而另外兩個部分則根據您所點擊的是“Run Script”還是“Cancel”來運行子例程。讓我們更進一步了解這幾個部分。 

例如,HTML 代碼在此顯示這四個單選按鈕。(如果您了解 HTML,那么這里就沒有什么特別的;這是標準的 HTML 編碼。)請注意,所有按鈕都有相同的名稱 (ComputerOption);這是為了確保一次只能選擇一個按鈕。還要注意,每個按鈕的“值”都被設為相應計算機的名稱: 

<BODY> 
<input type="radio" name="ComputerOption" value="atl-ws-01">atl-ws-01<BR> 
<input type="radio" name="ComputerOption" value="atl-ws-02">atl-ws-02<BR> 
<input type="radio" name="ComputerOption" value="atl-ws-03">atl-ws-03<BR> 
<input type="radio" name="ComputerOption" value="atl-ws-04">atl-ws-04<P> 

這是顯示“Run Script”和“Cancel”按鈕的代碼。這里的關鍵是“onClick”參數(在單擊按鈕時,指示該運行哪個子例程)。正如單擊第一個按鈕所能看到的,RunScript 子例程將運行;單擊第二個按鈕,CancelScript 子例程將運行: 

<input id=runbutton class="button" type="button" value="Run Script" name="ok_button"  
onClick="RunScript"> 
    
<input id=runbutton class="button" type="button" value="Cancel" name="cancel_button"  
onClick="CancelScript"> 

</BODY> 

順便說一下,CancelScript 子例程會關閉 HTA。正如您看到的,整個過程一點都不復雜: 

Sub CancelScript 
   Self.Close() 
End Sub 

現在——最終!——我們要遇到好事了。選擇一個單選按鈕,然后單擊“Run Script”。我們的 HTA 是如何知道所選擇的按鈕以及如何知道對哪臺計算機運行腳本?那么,到底要在哪里運行腳本呢?放松點;一切都在 RunScript 例程中: 

復制代碼代碼如下:

Sub RunScript  

    If ComputerOption(0).Checked Then  
        strComputer = ComputerOption(0).Value  
    End If  
    If ComputerOption(1).Checked Then  
        strComputer = ComputerOption(1).Value  
    End If  
    If ComputerOption(2).Checked Then  
        strComputer = ComputerOption(2).Value  
    End If  
    If ComputerOption(3).Checked Then  
        strComputer = ComputerOption(3).Value  
    End If  

    If strComputer = "" Then  
        Exit Sub  
    End If  

    Set objWMIService = GetObject _  
        ("winmgmts://" & strComputer & "/root/cimv2")  
    Set colItems = objWMIService.ExecQuery _  
        ("Select * From Win32_OperatingSystem")  
    For Each objItem in ColItems  
        Msgbox objItem.Caption  
    Next  

End Sub 

該子例程的前半部分用以確定所選的具體按鈕。單選按鈕(至少是具有相同名稱的按鈕)作為數組進行存儲;數組中的第一個按鈕是項目 0,第二個按鈕是項目 1 等等。我們在這里所做的就是確定選擇了哪個按鈕;這可以通過查看每個按鈕的“Checked(選定)”屬性來實現。例如,這行代碼用以確定按鈕 0(數組中的第一個按鈕)的“Checked”屬性是否為 true;如果是的話,就表示所選定的就是該按鈕: 

If ComputerOption(0).Checked Then 
如果“Checked”為 true,又如何呢?那么,隨后將對變量 strComputer 指派該單選按鈕的值(同時記住,該按鈕的值恰好是計算機的名稱): 

strComputer = ComputerOption(0).Value 
如果“Checked”為 False,那又如何呢?沒什么大不了;畢竟我們已經檢查了每個單選按鈕的值。遲早都會弄清楚選定了哪個按鈕(而且只能有一個)。如果最終確定未選擇任何按鈕,那么就將退出該子例程。這就是該代碼所完成的工作: 

復制代碼代碼如下:

If strComputer = "" Then  
    Exit Sub  
End If 

如果選擇了一個按鈕,那么 strComputer 將為我們所要連接的計算機的名稱。這就是該子例程的后半部分所完成的工作:連接到指定計算機并返回其上所安裝的操作系統的名稱的是一個標準 WMI 腳本。 

喲!我們敢打賭,對于能完成這件事,您會感到很高興,不是嗎?或者,至少如果我們的確做到了這一點,您就會高興。但是,還有一點需要指出。我們在此提供的示例 HTA 可以檢索計算機上所安裝的操作系統的名稱,然后將其顯示在消息框中。這很好,但是比方說您想顯示計算機上所安裝的所有服務的列表,又該怎么辦呢?這時,您會發現自己將應答幾十個消息框。這可不是您我所希望得到的用戶體驗。 

那么,能否解決這個問題?當然可以。我們不想在這方面多花時間,但是需要做幾件事。首先,我們在 HTA 中添加了一個 SPAN 區域;這只是屏幕上的一個可識別的區域,可以在其中寫入信息。使用此類代碼將 SPAN(附帶 DataArea 的 ID)放置在按鈕的下方: 

<P> <span id=DataArea></span> 
其次,需要收集該數據,并將其全都保存到一個變量中,而不在一個消息框中顯示所有數據。該代碼將變量 strText 的值設為當前在 strText 中的任何值加上“caption”屬性的值,再加上 <BR> 標記(在 HTML 腳本中相當于按鍵盤上的“ENTER”鍵): 

strText = strText & objItem.Caption & "<BR>" 
最后,需要將 SPAN 的“InnerHTML”屬性設為變量 strText 的值: 

DataArea.InnerHTML = strText 
都明白了嗎?另外,為了避免過多的解釋,這里有個修改過的 HTA,可以收集計算機上所安裝的所有服務的名稱,然后自動將這些名稱寫入 HTA 中: 

復制代碼代碼如下:

<SCRIPT LANGUAGE="VBScript">  

Sub RunScript  

    If ComputerOption(0).Checked Then  
        strComputer = ComputerOption(0).Value  
    End If  
    If ComputerOption(1).Checked Then  
        strComputer = ComputerOption(1).Value  
    End If  
    If ComputerOption(2).Checked Then  
        strComputer = ComputerOption(2).Value  
    End If  
    If ComputerOption(3).Checked Then  
        strComputer = ComputerOption(3).Value  
    End If  

    If strComputer = "" Then  
        Exit Sub  
    End If  

    Set objWMIService = GetObject _  
        ("winmgmts://" & strComputer & "/root/cimv2")  
    Set colItems = objWMIService.ExecQuery _  
        ("Select * From Win32_Service")  
    For Each objItem in ColItems  
        strText = strText & objItem.Name & "<BR>"  
    Next  

    DataArea.InnerHTML = strText  

End Sub  

Sub CancelScript  
   Self.Close()  
End Sub  

</SCRIPT>  

<BODY>  
<input type="radio" name="ComputerOption" value="atl-ws-01">atl-ws-01<BR>  
<input type="radio" name="ComputerOption" value="atl-ws-02">atl-ws-02<BR>  
<input type="radio" name="ComputerOption" value="atl-ws-03">atl-ws-03<BR>  
<input type="radio" name="ComputerOption" value="atl-ws-04">atl-ws-04<P>  

<input id=runbutton class="button" type="button" value="Run Script" name="ok_button"   
onClick="RunScript">  
     
<input id=runbutton class="button" type="button" value="Cancel" name="cancel_button"   
onClick="CancelScript">  
<P>  
<span id=DataArea></span>  
</BODY> 
 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91免费看片| 亚洲电影成人av99爱色| 亚州精品天堂中文字幕| 3344国产精品免费看| 日本人成精品视频在线| 成人国产精品日本在线| 日韩免费观看高清| 黑人精品xxx一区| 欧美精品18videosex性欧美| 精品国产91乱高清在线观看| 亚洲欧美国产制服动漫| 91久久国产综合久久91精品网站| 午夜精品蜜臀一区二区三区免费| 亚洲人成亚洲人成在线观看| 国产精品嫩草影院一区二区| 日韩av在线看| 欧美噜噜久久久xxx| 91精品91久久久久久| 久久九九精品99国产精品| 亚洲毛茸茸少妇高潮呻吟| 亚洲一区二区三区777| 日韩欧美国产成人| 亚洲精品456在线播放狼人| 欧美人在线视频| 国产精品网址在线| 亚洲女人被黑人巨大进入al| 久久高清视频免费| 日韩电影免费观看在线观看| 青草成人免费视频| 国产精品999| 欧美激情免费观看| 亚洲欧美中文日韩在线v日本| 日韩有码在线观看| 91精品免费久久久久久久久| 国产视频精品在线| 高清欧美性猛交xxxx| 日韩av在线电影网| 福利精品视频在线| 另类专区欧美制服同性| 国产精品日韩精品| 不卡av在线播放| 久久精品国产欧美激情| 欧美一级电影在线| 亚洲三级 欧美三级| 在线免费看av不卡| 亚洲国产私拍精品国模在线观看| 国产精品亚洲综合天堂夜夜| 不卡在线观看电视剧完整版| 亚洲成人动漫在线播放| 亚洲小视频在线| 亚洲欧美国产一区二区三区| 日本在线观看天堂男亚洲| 成人激情av在线| 精品视频www| 欧美日韩激情视频| 日韩精品小视频| 国产精品成人品| 欧美日本黄视频| 欧美日韩亚洲精品内裤| 久久久久久尹人网香蕉| 欧美日韩亚洲一区二区三区| 亚洲丝袜av一区| 日韩麻豆第一页| 国产亚洲视频在线| 97视频在线观看网址| 亚洲自拍偷拍视频| 社区色欧美激情 | 欧美激情网站在线观看| 久久久精品久久| 久久久久久这里只有精品| 欧美成人精品不卡视频在线观看| 欧美成人亚洲成人日韩成人| 欧美久久精品午夜青青大伊人| 国产精品久久久久久五月尺| 久久影视电视剧凤归四时歌| 国产欧美精品日韩| 这里只有精品在线播放| 欧美日韩激情网| 欧洲亚洲妇女av| 超碰97人人做人人爱少妇| 亚洲欧美日韩精品久久奇米色影视| 日韩视频中文字幕| 国产成人精品免高潮在线观看| 日韩电影中文字幕av| 成人性生交大片免费观看嘿嘿视频| 国产成人一区二| 中文字幕精品视频| 日韩av影视在线| 日韩男女性生活视频| 日韩欧美999| 久久久久久噜噜噜久久久精品| 中文字幕日韩欧美在线视频| 国产精品精品国产| 亚洲成年网站在线观看| 日韩中文字幕在线免费观看| www.99久久热国产日韩欧美.com| 亚洲综合色激情五月| 欧美日韩免费网站| 亚洲精品国产综合区久久久久久久| 国产精品久久99久久| 97成人在线视频| 欧美性理论片在线观看片免费| 日韩精品日韩在线观看| 亚洲人午夜精品| 国内精品视频久久| 国产精品第七影院| 国产一区二区三区在线免费观看| 久久久久久久影视| 91经典在线视频| 中文字幕日韩在线观看| 日韩欧美黄色动漫| 日韩精品中文在线观看| 久久久久一本一区二区青青蜜月| 国产精品一久久香蕉国产线看观看| 亚洲欧美另类中文字幕| 欧美日韩日本国产| 欧美激情精品久久久久久黑人| 日韩精品福利在线| 久久视频免费观看| 国产成人福利视频| 色悠悠国产精品| 亚洲男人天堂2019| 久久在精品线影院精品国产| 久久久国产影院| 北条麻妃一区二区三区中文字幕| 69久久夜色精品国产7777| 国产成人亚洲综合91精品| 日本午夜人人精品| 91精品国产自产在线| 欧美另类99xxxxx| 久久全球大尺度高清视频| 亚洲天堂男人天堂女人天堂| 日韩欧美一区视频| 亚洲福利在线播放| 欧美一级在线亚洲天堂| 琪琪亚洲精品午夜在线| 欧美性猛交xxxx黑人猛交| 国产精品久久久91| 欧美高清视频在线| 精品日韩视频在线观看| 中文字幕精品网| 国产精品盗摄久久久| 亚洲无限av看| 亚洲最大激情中文字幕| 亚洲电影中文字幕| 九九热最新视频//这里只有精品| 国产精品久久久av久久久| 欧美一级在线播放| 久久久久久国产| 国产精品嫩草影院一区二区| 97成人精品视频在线观看| 欧美一级成年大片在线观看| 亚洲免费电影一区| 欧美成人免费全部观看天天性色| 亚洲香蕉av在线一区二区三区| 最近2019中文字幕mv免费看| 亚洲精品在线91| 亚洲男人天堂网| 久久久久久成人精品| 久久久久久久影院| 91精品国产99久久久久久| 国产精品久久久久久久久久久久久久| 久久久久久12| 黑人巨大精品欧美一区免费视频|