创建一个在标题栏中没有“关闭”按钮的 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>
当您运行它的时候,看到的结果应该同下图相似:

那么我们是如何去掉“关闭”按钮(更不用说“最大化”和“最小化”按钮了)而仍然保留窗口标题栏的呢?很简单:只需将 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 正常地关闭。但这将由您来决定。还有您的良心

(0)

相关推荐

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

    问: 您好,脚本专家!如何创建一个在标题栏中没有"关闭"按钮的 HTA? -- AK 答: 您好,AK.您知道,您的问题让我们陷入了道德和伦理的窘境.毕竟,假如我们给出此问题的答案:这个世界就有可能突然被大量无法关闭的 HTA 所淹没.在我们的眼前会出现这样一幅画面:无法关闭又不能停止的 HTA 疯狂地横扫整个陆地,并吞食沿途的所有系统资源.而我们脚本专家,将要对此负责.我们只是觉得无法在良心上背负这样一条的罪责. 但是,在我们的的良心上再多加一条罪责又会有什么不同呢?明确这一点后,我

  • Android标题栏中添加返回按钮功能

    标题栏中的返回按钮在实际使用中用的比较多,今天就来讲讲我在项目开发中的使用经历,话不多说,还是直接上源码,上源码是最给力的. 一. 编写自定义类 public class CustomTitle { private static Activity mActivity; public static void getCustomTitle(Activity activity, String title) { mActivity = activity; mActivity.requestWindowF

  • 用JS创建一个录屏功能

    OBS studio很酷,但 JavaScript 更酷,现在,我们用 JavaScript 创建自己的录屏功能. 首先,创建一个HTML文件,包含记录按钮和一个播放标签, 内容如下: <!DOCTYPE html> <html> <head> <title>Parcel Sandbox</title> <meta charset="UTF-8" /> </head> <body> <

  • 在ASP.NET 2.0中操作数据之一:创建一个数据访问层

    导言 作为web开发人员,我们的生活围绕着数据操作.我们建立数据库来存储数据,写编码来访问和修改数据,设计网页来采集和汇总数据.本文是研究在ASP.NET 2.0中实现这些常见的数据访问模式之技术的长篇系列教程的第一篇.我们将从创建一个软件框架开始,这个框架的组成部分包括一个使用强类型的DataSet的数据访问层(DAL),一个实施用户定义的业务规则的业务逻辑层(BLL),以及一个由共享页面布局的ASP.NET网页组成的表现层.在打下这个后端的基础工作之后,我们将开始转向报表,示范如何显示,汇总

  • Vue中使用element-ui给按钮绑定一个单击事件实现点击按钮就弹出dialog对话框

    目录 1.需求描述 2.功能实现 1.创建按钮 2.创建对话框 3.对话框与按钮的绑定 3.对话框表单的改造 4.对“状态”Switch开关所提交的类型进行修改 5.完整代码 总结 1.需求描述 想要实现点击一个按钮就弹出一个对话框,在对话框中可输入数据进行提交,在点击取消时对话框关闭 2.功能实现 1.创建按钮 在element中把找到按钮的代码放到div里 <el-row> <el-button type="primary" plain>新增</el-

  • vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?

    问: 嗨,脚本专家!这是我想要完成的任务:我想要用一个脚本启动两个可执行文件.第一个应用程序关闭后,我想让这个脚本关闭第二个应用程序,然后退出.如何完成上述任务? -- MK 答: 您好,MK.您知道,这是我们喜欢的那种类型的问题.为什么?因为它听起来确实很复杂很棘手.如果有人想找我们做什么事,我们就可以说"您知道,我正在尝试编写这样一个脚本:它能够启动两个应用程序,等到第一个关闭后,然后自动关闭第二个."然后他们肯定会说"噢,很抱歉.很显然,你们很忙",然后就不找

  • 在ASP.NET 2.0中操作数据之六十:创建一个自定义的Database-Driven Site Map Provider

    导言: ASP.NET 2.0的网站地图(site map)功能允许页面开发者在一些持久介质(persistent medium),比如一个XML文件里,自己定义一个web程序的site map.一旦定义了之后,我们可以通过System.Web命名空间的SiteMap class类或某个Web导航控件,比如SiteMapPath, Menu, 或TreeView来对其进行访问.site map系统使用的是provider model模式,所以可以创建不同的site map,并将其应用到一个web

  • Android中创建一个透明的进度对话框实例

    首先我们看一下什么叫做透明的进度对话框: 接下来我们讲一下如何创建:1.使用Eclipse创建一个新的Andr​​oid 项目,使用Android 2.2或以上.2.在/res/layout文件夹,创建线性布局activity_main.xml文件,主要是为了添加一个文本标签和一个按钮 复制代码 代码如下: activity_main.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

  • 在vs code 中如何创建一个自己的 Vue 模板代码

    首先,在vs code 中打开定义模板代码的地方 第一步,点击"设置"图标按钮,在弹出的菜单中点击的"用户代码片段"(也就是模板) 第二步,在弹出的框中选择新建代码片段(可选为 全局/现在的项目 创建模板) 第三步,输入要新建的模板名称,然后,回车(这里我已经新建过了) 然后会自动打开下面这个页面,在这里我们就可以开始新建一个vue模板了 现在我们开始创建我们的模板了 这是一个模板例子 需要的可以直接拷贝到新建的模板文件中,然后按自己的风格改改 { "Pr

  • iOS实现一个可以在屏幕中自由移动的按钮

    本文主要给大家介绍了利用iOS实现一个可以在屏幕中自由移动的按钮的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍. 效果图如下: 其实实现很简单,只需要写.m就可以了 示例代码 #import "CrossBtnVC.h" @interface CrossBtnVC () { CGPoint beginPoint; CGFloat rightMargin; CGFloat leftMargin; CGFloat topMargin; CGFloat bottomM

随机推荐