我需要根据另一个.hta
窗口创建一个.hta
窗口。因此,基本上窗口A不能在没有窗口B先关闭的情况下关闭。我有两个窗口紧挨着它们,它们在单击设置时充当一个窗口(它基本上显示了第一个窗口的弹出窗口或扩展,其中包含应用程序的选项)。
第二个窗口由:
执行Sub Settings()
Set objShell = CreateObject("WScript.Shell")
objShell.Run "Launcher-Settings.hta"
End Sub
按钮是:
<input type="button" value="Settings" name="MSG-Button" id="LauncherSettings1" class="LauncherSetting1" onClick="Settings()" />
两个窗户都在附近:
<input type="button" value="<< Close" name="CloseButton" id="CloseButton" class="CloseButton" onClick="javascript:Window.close()" />
答案 0 :(得分:0)
我的评论中有一个拼写错误,应该是&#34; unload
事件无法取消...&#34;。
您可以在使用WMI关闭A之前强制关闭窗口B,如下所示:
top.onbeforeunload = function () {
var wmiLocator = new ActiveXObject('WbemScripting.SWbemLocator'),
wmiService = wmiLocator.ConnectServer('.', 'root\\CIMV2'),
htaProcesses = new Enumerator(wmiService.ExecQuery("Select * from Win32_Process Where name = 'mshta.exe'")),
htas = [], n;
while (!htaProcesses.atEnd()) {
if (htaProcesses.item().CommandLine.indexOf('Launcher-Settings.hta') > -1) {
htas.push(htaProcesses.item());
}
htaProcesses.moveNext();
}
for (n = 0; n < htas.length; n++) {
htas[n].Terminate();
}
return;
}