用vbscript實現(xiàn)在消息框中顯示一個超鏈接
更新時間:2007年04月06日 00:00:00 作者:
問:
嗨,Scripting Guy!可以在消息框中包含指向某個 Web 頁面的超鏈接嗎?
-- CB
答:
嗨,CB。聽起來您好像想要向用戶顯示一個消息框,并且希望在消息框中包含一個超鏈接,以便用戶可以點擊這個鏈接,從而獲得更多信息。例如,假設(shè)某個用戶試圖訪問一些資源,但被拒絕了。這種情況下,您可以彈出一個消息框,告訴用戶訪問被拒絕,然后向他們提供一個鏈接,這個鏈接指向的頁面會告訴用戶訪問所需的權(quán)限。一般說來,這種辦法會比簡單地說“訪問被拒絕”好得多。
那么,是否可以用腳本編寫語言實現(xiàn)這個目的呢?好吧,據(jù)我們所知,目前還不能。消息框中含有超鏈接當然會很酷,但使用腳本編寫語言則僅限于簡單的消息框。
不過,先等等,別忙著離開!您并沒有問我們:“是否存在某種變通辦法可以實現(xiàn)相同目的,但不必在消息框中嵌入超鏈接?”如果您這么問,我們就會告訴您:“總會有變通辦法的?!蹦鶎で蟮木褪菑南⒖蛑袑崿F(xiàn)對 Web 頁面的一鍵式訪問。一個方法就是在消息框中嵌入超鏈接,但不幸的是,我們上面說過,使用 VBScript 無法實現(xiàn)上述目的。因此,我們試著使用其他辦法看看:為什么不彈出一個消息框,詢問用戶:“您是否想要申請訪問此資源?”呢?如果用戶點擊否,那么腳本就會中止。如果用戶點擊是,腳本就會自動將用戶帶到合適的 Web 頁面。一個消息框,一鍵式訪問網(wǎng)站。它和使用超鏈接并不十分相同,但結(jié)果卻是一樣的。
如您所見,這只需要以下幾行代碼就可以實現(xiàn):
Set objShell = CreateObject("Wscript.Shell")
intMessage = Msgbox("Would you like to apply for access to this resource?", _
vbYesNo, "Access Denied")
If intMessage = vbYes Then
objShell.Run("http://www.microsoft.com")
Else
Wscript.Quit
End If
我們首先創(chuàng)建一個 WSH Shell 對象實例;我們需要創(chuàng)建這個實例,以便彈出 Web 瀏覽器和鏈接到網(wǎng)站。然后,我們顯示消息框(標題為訪問被拒絕),并詢問用戶:“您是否想要申請訪問此資源?”這個消息框具有一個是按鈕和一個否按鈕,這就是 VBScript 常量 vbYesNo 的用途。
注意:有些人可能在想:“等等,我想您應(yīng)該在 VBScript 中明確定義這些常量?!痹诖蠖鄶?shù)情況下,這是正確的。如果我們處理的是 FileSystemObject(打個比方),那么我們就需要使用類似如下代碼定義常量:
Const ForReading = 1
但是,VBScript 有一些內(nèi)部常量。vbYesNo 恰好就是其中之一。它用于在消息框中顯示“是”按鈕或“否”按鈕。vbCrLf 則是另一個內(nèi)部常量,它的作用是在字符串末尾添加回車換行。這些內(nèi)部常量——它們是 VBScript 語言的一部分——不必定義;在您輸入 vbYesNo 時,VBScript 會知道您的意思。
我們剛才說到哪了?哦,對了,我們彈出一個消息框,并向用戶提供是按鈕和否按鈕。如果用戶點擊是,我們就將他們帶到指定的網(wǎng)站。那么,如何知道用戶點擊的是否為是呢?很簡單:當我們創(chuàng)建消息框時,我們就將用戶響應(yīng)存儲在變量 intMessage 中。因此,若要判斷用戶點了哪個按鈕,我們只要檢查 intMessage 的值就可以了。如果這個值等于 vbYesNo(另一個內(nèi)部常量,等于 6),那么用戶點擊的便為是,于是我們就使用 Shell 對象的 Run 方法打開網(wǎng)站 http://www.microsoft.com。(注意,我們需要做的就是指定 URL;然后操作系統(tǒng)就會使用默認瀏覽器導(dǎo)航到該站點。)
那如果用戶點擊的為否呢?這種情況下,我們就會退出 (Wscript.Quit)。
恰如我們所說的,這個方法和我們想象中的不完全一樣,但它可以實現(xiàn)這個目的。
順便說一下,如果您想了解有關(guān) VBScript 的 Msgbox 函數(shù)以及配置這個函數(shù)的不同方式的更多信息,請訪問MSDN 上的 “VBScript 語言參考”。
那如果您需要制作精美一點的消息框呢?這種情況下,您可以自己動手制作一個 HTML 頁面,然后使用這個頁面模擬真實的 Windows 消息框。不過這個問題我們將在其他時間討論。
嗨,Scripting Guy!可以在消息框中包含指向某個 Web 頁面的超鏈接嗎?
-- CB
答:
嗨,CB。聽起來您好像想要向用戶顯示一個消息框,并且希望在消息框中包含一個超鏈接,以便用戶可以點擊這個鏈接,從而獲得更多信息。例如,假設(shè)某個用戶試圖訪問一些資源,但被拒絕了。這種情況下,您可以彈出一個消息框,告訴用戶訪問被拒絕,然后向他們提供一個鏈接,這個鏈接指向的頁面會告訴用戶訪問所需的權(quán)限。一般說來,這種辦法會比簡單地說“訪問被拒絕”好得多。
那么,是否可以用腳本編寫語言實現(xiàn)這個目的呢?好吧,據(jù)我們所知,目前還不能。消息框中含有超鏈接當然會很酷,但使用腳本編寫語言則僅限于簡單的消息框。
不過,先等等,別忙著離開!您并沒有問我們:“是否存在某種變通辦法可以實現(xiàn)相同目的,但不必在消息框中嵌入超鏈接?”如果您這么問,我們就會告訴您:“總會有變通辦法的?!蹦鶎で蟮木褪菑南⒖蛑袑崿F(xiàn)對 Web 頁面的一鍵式訪問。一個方法就是在消息框中嵌入超鏈接,但不幸的是,我們上面說過,使用 VBScript 無法實現(xiàn)上述目的。因此,我們試著使用其他辦法看看:為什么不彈出一個消息框,詢問用戶:“您是否想要申請訪問此資源?”呢?如果用戶點擊否,那么腳本就會中止。如果用戶點擊是,腳本就會自動將用戶帶到合適的 Web 頁面。一個消息框,一鍵式訪問網(wǎng)站。它和使用超鏈接并不十分相同,但結(jié)果卻是一樣的。
如您所見,這只需要以下幾行代碼就可以實現(xiàn):
復(fù)制代碼 代碼如下:
Set objShell = CreateObject("Wscript.Shell")
intMessage = Msgbox("Would you like to apply for access to this resource?", _
vbYesNo, "Access Denied")
If intMessage = vbYes Then
objShell.Run("http://www.microsoft.com")
Else
Wscript.Quit
End If
注意:有些人可能在想:“等等,我想您應(yīng)該在 VBScript 中明確定義這些常量?!痹诖蠖鄶?shù)情況下,這是正確的。如果我們處理的是 FileSystemObject(打個比方),那么我們就需要使用類似如下代碼定義常量:
Const ForReading = 1
但是,VBScript 有一些內(nèi)部常量。vbYesNo 恰好就是其中之一。它用于在消息框中顯示“是”按鈕或“否”按鈕。vbCrLf 則是另一個內(nèi)部常量,它的作用是在字符串末尾添加回車換行。這些內(nèi)部常量——它們是 VBScript 語言的一部分——不必定義;在您輸入 vbYesNo 時,VBScript 會知道您的意思。
我們剛才說到哪了?哦,對了,我們彈出一個消息框,并向用戶提供是按鈕和否按鈕。如果用戶點擊是,我們就將他們帶到指定的網(wǎng)站。那么,如何知道用戶點擊的是否為是呢?很簡單:當我們創(chuàng)建消息框時,我們就將用戶響應(yīng)存儲在變量 intMessage 中。因此,若要判斷用戶點了哪個按鈕,我們只要檢查 intMessage 的值就可以了。如果這個值等于 vbYesNo(另一個內(nèi)部常量,等于 6),那么用戶點擊的便為是,于是我們就使用 Shell 對象的 Run 方法打開網(wǎng)站 http://www.microsoft.com。(注意,我們需要做的就是指定 URL;然后操作系統(tǒng)就會使用默認瀏覽器導(dǎo)航到該站點。)
那如果用戶點擊的為否呢?這種情況下,我們就會退出 (Wscript.Quit)。
恰如我們所說的,這個方法和我們想象中的不完全一樣,但它可以實現(xiàn)這個目的。
順便說一下,如果您想了解有關(guān) VBScript 的 Msgbox 函數(shù)以及配置這個函數(shù)的不同方式的更多信息,請訪問MSDN 上的 “VBScript 語言參考”。
那如果您需要制作精美一點的消息框呢?這種情況下,您可以自己動手制作一個 HTML 頁面,然后使用這個頁面模擬真實的 Windows 消息框。不過這個問題我們將在其他時間討論。
相關(guān)文章
用VBS實現(xiàn)PHP的md5_file函數(shù)代碼
用VBS實現(xiàn)PHP的md5_file函數(shù)代碼,需要的朋友可以參考下,代碼主要是參考官方的資料。2011-01-01使用 Iisftpdr.vbs 刪除FTP虛擬目錄(支持本地與遠程)
這篇文章主要介紹了如何通過 iisftpdr.vbs 刪除本地或遠程計算機上的 FTP 虛擬目錄的方法,需要的朋友可以參考下2014-07-07