問:
您好,腳本專家!如何創建一個在標題欄中沒有“關閉”按鈕的HTA?
--AK
答:
您好,AK。您知道,您的問題讓我們陷入了道德和倫理的窘境。畢竟,假如我們給出此問題的答案:這個世界就有可能突然被大量無法關閉的HTA所淹沒。在我們的眼前會出現這樣一幅畫面:無法關閉又不能停止的HTA瘋狂地橫掃整個陸地,併吞食沿途的所有系統資源。而我們腳本專家,將要對此負責。我們只是覺得無法在良心上背負這樣一條的罪責。
但是,在我們的的良心上再多加一條罪責又會有什麼不同呢?明確這一點後,我們給出了下面這個無法關閉的HTA;關掉它的唯一方法就是終止Mshta.exe進程(或者讓陸軍航空兵從帝國大廈頂部將其擊落):
<html>
<head>
<title>Test</title>
</head>
<HTA:APPLICATION
SysMenu="no"
>
<body>
<p>ThisHTAhasnoClosebutton.</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"
>
<SCRIPTLANGUAGE="VBScript">
SubExitProgram
window.close()
EndSub
</SCRIPT>