html - 使用 VBScript 捕获 HTA 窗口关闭事件

标签 html vbscript hta

我一直在尝试使用 hta 作为熟悉 HTML 的一种方式。我添加了代码以在 hta 窗口打开时最小化所有窗口,但我无法弄清楚如何在 hta 关闭时恢复所有窗口。有什么建议么? (这里的大部分代码来 self 在 hta 上阅读的页面)

<html>
<head>
<title>processes</title>
<HTA:APPLICATION
  APPLICATIONNAME="processes"
  ID="processes"
  VERSION="1.0"/>
</head>

<script language="VBScript">

Sub Window_OnLoad
    Set objShell = CreateObject("shell.application")
    objShell.ToggleDesktop
    Dim width,height
    width=600
    height=800
    Set oShell = CreateObject("wscript.shell")
    oShell.SendKeys "% r"
    self.ResizeTo width,height
    self.MoveTo (screen.AvailWidth-width)/2,(screen.AvailHeight-height)/2

End Sub


    Sub GetProcesses

        strComputer = "."

        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
        Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")

        For Each objProcess in colProcesses
            strHTML = strHTML & objProcess.Name & " -- " & objProcess.ProcessID & "<br>"
        Next

        DataArea.InnerHTML = strHTML

    End Sub

</script>

<body bgcolor="white">

<input type="button" value="Processes" name="run_button"  onClick="GetProcesses">
<span id = "DataArea"></span>
</body>
</html>

最佳答案

使用窗口卸载

<html>
    <head>
    <title>processes</title>
    <HTA:APPLICATION
      APPLICATIONNAME="processes"
      ID="processes"
      VERSION="1.0"/>
    </head>

    <script language="VBScript">

    Sub Window_OnLoad
        Set objShell = CreateObject("shell.application")
        objShell.MinimizeAll
        Set objShell = Nothing
        Dim width,height
        width=600
        height=800
        Set oShell = CreateObject("wscript.shell")
        oShell.SendKeys "% r"
        self.ResizeTo width,height
        self.MoveTo (screen.AvailWidth-width)/2,(screen.AvailHeight-height)/2

    End Sub

    sub  Window_onUnload
        Set objShell = CreateObject("shell.application")
        objShell.UndoMinimizeALL
        Set objShell = Nothing
    end sub

    Sub GetProcesses

        strComputer = "."

        Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
        Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")

        For Each objProcess in colProcesses
            strHTML = strHTML & objProcess.Name & " -- " & objProcess.ProcessID & "<br>"
        Next

        DataArea.InnerHTML = strHTML

    End Sub

    </script>

    <body bgcolor="white">

    <input type="button" value="Processes" name="run_button"  onClick="GetProcesses">
    <span id = "DataArea"></span>
    </body>
    </html>

关于html - 使用 VBScript 捕获 HTA 窗口关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41267702/

相关文章:

html - 较高 Z-Index 上的元素受较低 Z-Index 上透明 Div 的影响

vbscript - 从ini文件中读取数据

vbscript - 从 vbs 同步两个 .bat 的命令

java - 向后逻辑 : playing with fire : run . hta 作为前端 gui,java/sqlite 作为后端?

javascript - 从网络计算机上启用智能卡的登录中读取 Windows 用户名

python - 抓取图片url src时,获取数据:image/jpeg;base64

javascript - jQuery 可拖动错误(元素与光标不对齐)

javascript - REST API 与直接访问代码

parsing - VBScript语法: How to model sub call without parentheses

windows - Windows 脚本宿主的 future