創(chuàng)建一個在標(biāo)題欄中沒有“關(guān)閉”按鈕的 HTA
更新時間:2007年03月27日 00:00:00 作者:
問:
您好,腳本專家!如何創(chuàng)建一個在標(biāo)題欄中沒有“關(guān)閉”按鈕的 HTA?
-- AK
答:
您好,AK。您知道,您的問題讓我們陷入了道德和倫理的窘境。畢竟,假如我們給出此問題的答案:這個世界就有可能突然被大量無法關(guān)閉的 HTA 所淹沒。在我們的眼前會出現(xiàn)這樣一幅畫面:無法關(guān)閉又不能停止的 HTA 瘋狂地橫掃整個陸地,并吞食沿途的所有系統(tǒng)資源。而我們腳本專家,將要對此負(fù)責(zé)。我們只是覺得無法在良心上背負(fù)這樣一條的罪責(zé)。
但是,在我們的的良心上再多加一條罪責(zé)又會有什么不同呢?明確這一點后,我們給出了下面這個無法關(guān)閉的 HTA;關(guān)掉它的唯一方法就是終止 Mshta.exe 進(jìn)程(或者讓陸軍航空兵從帝國大廈頂部將其擊落):
<html>
<head>
<title>Test</title>
</head>
<HTA:APPLICATION
SysMenu="no"
>
<body>
<p>This HTA has no Close button.</p>
</body>
</html>
當(dāng)您運行它的時候,看到的結(jié)果應(yīng)該同下圖相似:

那么我們是如何去掉“關(guān)閉”按鈕(更不用說“最大化”和“最小化”按鈕了)而仍然保留窗口標(biāo)題欄的呢?很簡單:只需將 SysMenu 屬性值設(shè)置為 no 即可:
<HTA:APPLICATION
SysMenu="no"
>
就是這樣:將 SysMenu 的值設(shè)置為 no(這必須在 HTA:APPLICATION 標(biāo)記內(nèi)部完成)將去掉“關(guān)閉”按鈕、“最大化”和“最小化”按鈕以及系統(tǒng)菜單。仍然可以四下移動窗口(單擊標(biāo)題欄并拖動即可),但是沒有辦法關(guān)閉窗口。
是的,我們的良心此刻有些不安。(盡管這很可能是因為我們喝完了最后一杯咖啡但由于太懶而不愿重沏一壺。)下面是一個經(jīng)過修訂的在標(biāo)題欄中沒有“關(guān)閉”按鈕的 HTA;不過,在它的主體之中卻的確有一個標(biāo)有 Exit 的按鈕。單擊此按鈕,一個名為 ExitProgram 的子例程將關(guān)閉 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 正常地關(guān)閉。但這將由您來決定。還有您的良心
您好,腳本專家!如何創(chuàng)建一個在標(biāo)題欄中沒有“關(guān)閉”按鈕的 HTA?
-- AK
答:
您好,AK。您知道,您的問題讓我們陷入了道德和倫理的窘境。畢竟,假如我們給出此問題的答案:這個世界就有可能突然被大量無法關(guān)閉的 HTA 所淹沒。在我們的眼前會出現(xiàn)這樣一幅畫面:無法關(guān)閉又不能停止的 HTA 瘋狂地橫掃整個陸地,并吞食沿途的所有系統(tǒng)資源。而我們腳本專家,將要對此負(fù)責(zé)。我們只是覺得無法在良心上背負(fù)這樣一條的罪責(zé)。
但是,在我們的的良心上再多加一條罪責(zé)又會有什么不同呢?明確這一點后,我們給出了下面這個無法關(guān)閉的 HTA;關(guān)掉它的唯一方法就是終止 Mshta.exe 進(jìn)程(或者讓陸軍航空兵從帝國大廈頂部將其擊落):
<html>
<head>
<title>Test</title>
</head>
<HTA:APPLICATION
SysMenu="no"
>
<body>
<p>This HTA has no Close button.</p>
</body>
</html>
當(dāng)您運行它的時候,看到的結(jié)果應(yīng)該同下圖相似:

那么我們是如何去掉“關(guān)閉”按鈕(更不用說“最大化”和“最小化”按鈕了)而仍然保留窗口標(biāo)題欄的呢?很簡單:只需將 SysMenu 屬性值設(shè)置為 no 即可:
<HTA:APPLICATION
SysMenu="no"
>
就是這樣:將 SysMenu 的值設(shè)置為 no(這必須在 HTA:APPLICATION 標(biāo)記內(nèi)部完成)將去掉“關(guān)閉”按鈕、“最大化”和“最小化”按鈕以及系統(tǒng)菜單。仍然可以四下移動窗口(單擊標(biāo)題欄并拖動即可),但是沒有辦法關(guān)閉窗口。
是的,我們的良心此刻有些不安。(盡管這很可能是因為我們喝完了最后一杯咖啡但由于太懶而不愿重沏一壺。)下面是一個經(jīng)過修訂的在標(biāo)題欄中沒有“關(guān)閉”按鈕的 HTA;不過,在它的主體之中卻的確有一個標(biāo)有 Exit 的按鈕。單擊此按鈕,一個名為 ExitProgram 的子例程將關(guān)閉 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 正常地關(guān)閉。但這將由您來決定。還有您的良心
相關(guān)文章
exe轉(zhuǎn)換16進(jìn)制的html保存的hta實現(xiàn)代碼
用下面這個hta文件來轉(zhuǎn)exe變成16進(jìn)制的html保存了。這樣也會方便一點。2009-07-07VBS腳本的GUI界面 HTA簡明教程(網(wǎng)絡(luò)搜集整理)
HTA是HTML Application的縮寫(HTML應(yīng)用程序),是軟件開發(fā)的新概念,直接將HTML保存成HTA的格式,就是一個獨立的應(yīng)用軟件,雙擊就能運行,與VB、C++等程序語言所設(shè)計的軟件沒什么差別。2009-08-08如何使一個HTA位于屏幕中心(Win32_DesktopMonitor)
我們可以調(diào)整(如果需要)窗口大小并使其居中,但這樣做時會在屏幕上出現(xiàn)瞬間的閃爍。這并不是太明顯,其實際結(jié)果就是你所期望的:HTA 會位于屏幕中心2013-08-08