创建一个在标题栏中没有“关闭”按钮的 HTA

米米素材网
                                   问:
您好,脚本专家!如何创建一个在标题栏中没有“关闭”按钮的 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>
当您运行它的时候,看到的结果应该同下图相似:
HTA
那么我们是如何去掉“关闭”按钮(更不用说“最大化”和“最小化”按钮了)而仍然保留窗口标题栏的呢?很简单:只需将 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
出于全方面考虑,可能最好还是找到某种办法以将 HTA 正常地关闭。但这将由您来决定。还有您的良心