问:
您好,脚本专家!如何创建一个在标题栏中没有“关闭”按钮的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>
<body>
<inputid=runbuttontype="button"value="Exit"onClick="ExitProgram">
</body>
</html>
在这种情况下,我们会得到一个类似下图的HTA:
出于全方面考虑,可能最好还是找到某种办法以将HTA正常地关闭。但这将由您来决定。还有您的良心