建立一個在標題列中沒有“關閉”按鈕的 HTA_hta
來源:互聯網
上載者:User
問:
您好,指令碼專家!如何建立一個在標題列中沒有“關閉”按鈕的 HTA?
-- AK
答:
您好,AK。您知道,您的問題讓我們陷入了道德和倫理的窘境。畢竟,假如我們給出此問題的答案:這個世界就有可能突然被大量無法關閉的 HTA 所淹沒。在我們的眼前會出現這樣一幅畫面:無法關閉又不能停止的 HTA 瘋狂地橫掃整個陸地,并吞食沿途的所有系統資源。而我們指令碼專家,將要對此負責。我們只是覺得無法在良心上背負這樣一條的罪責。
但是,在我們的的良心上再多加一條罪責又會有什麼不同呢?明確這一點後,我們給出了下面這個無法關閉的 HTA;關掉它的唯一方法就是終止 Mshta.exe 進程(或者讓陸軍航空兵從帝國大廈頂部將其擊落):
<html>
<head>
<title>Test</title>
</head>
<HTA:APPLICATION
SysMenu="no"
>
<body>
<p>This HTA has no Close button.</p>
</body>
</html>
當您運行它的時候,看到的結果應該同下圖相似:
那麼我們是如何去掉“關閉”按鈕(更不用說“最大化”和“最小化”按鈕了)而仍然保留視窗標題列的呢?很簡單:只需將 SysMenu 屬性值設定為 no 即可:
<HTA:APPLICATION
SysMenu="no"
>
就是這樣:將 SysMenu 的值設定為 no(這必須在 HTA:APPLICATION 標記內部完成)將去掉“關閉”按鈕、“最大化”和“最小化”按鈕以及系統功能表。仍然可以四下移動視窗(單擊標題列並拖動即可),但是沒有辦法關閉視窗。
是的,我們的良心此刻有些不安。(儘管這很可能是因為我們喝完了最後一杯咖啡但由於太懶而不願重沏一壺。)下面是一個經過修訂的在標題列中沒有“關閉”按鈕的 HTA;不過,在它的主體之中卻的確有一個標有 Exit 的按鈕。單擊此按鈕,一個名為 ExitProgram 的子常式將關閉 HTA 視窗:
<html>
<head>
<title>Test</title>
</head>
<HTA:APPLICATION
SysMenu="no"
>
<SCRIPT LANGUAGE="VBScript">
Sub ExitProgram
window.close()
End Sub
</SCRIPT>
<body>
<input id=runbutton type="button" value="Exit" onClick="ExitProgram">
</body>
</html>
在這種情況下,我們會得到一個類似下圖的 HTA:
出於全方面考慮,可能最好還是找到某種辦法以將 HTA 正常地關閉。但這將由您來決定。還有您的良心