阻止用户关闭HTA

时间:2014-07-29 12:36:16

标签: vbscript hta

在HTA中使用vbscript

目标:防止用户关闭HTA(除了我的自定义按钮或使用Windows任务管理器)

据我从各种网页了解;在HTA SYSMENU中单击关闭按钮时,无法阻止HTA关闭。因此,我的解决方案是防止用户首先点击关闭。

首先要禁用系统菜单:

<HTA:APPLICATION SYSMENU="no" />

NB。我将用自定义系统菜单替换系统菜单 - 任何指向此指南的链接都将受到赞赏。

接下来阻止键盘快捷键alt + f4,f5或转义如下:

Function Document_onKeyDown()

    Dim alt
    alt = window.event.altKey
    Select Case window.event.keyCode
        Case 27,116
            window.event.keyCode = 0
            window.event.cancelBubble = true
            Document_onKeyDown = False
        Case 115
            If alt Then
                window.event.keyCode = 0
                window.event.cancelBubble = true
                Document_onKeyDown = False
            End If
        Case Else
            Document_onKeyDown = True
    End Select

End Function

最后,我想阻止用户使用我的HTA应用程序的Windows任务栏上下文菜单。

如何通过右键单击我的HTA来阻止用户查看上下文菜单?

NB。 HTA窗口不能全屏

2 个答案:

答案 0 :(得分:2)

不要乱用用户关闭应用程序的选项。决定用户应该如何工作并不取决于你。而是添加一个清理程序,在其中执行所有“关闭”任务并在beforeunload事件上调用它:

<html>
<head>
<title>sample</title>
<HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="sample"
>
<script language="VBScript">
Sub cleanup
  'clean up stuff here
End Sub
</script>
</head>

<body onbeforeunload=cleanup>
...
</body>
</html>

答案 1 :(得分:1)

关于:

  

如何通过右键单击我的HTA来阻止用户查看上下文菜单?

<HTA:APPLICATION contextMenu="no">
相关问题