Если окно HTA активно, то при щелчке по кнопке на панели задач, оно перестаёт быть активным.
Отсюда вывод: отслеживать получение или утрату окном фокуса и менять при этом значение windowState c "normal" на "minimized".
Но это сопряжено с рядом трудностей:
• Окно будет сворачиваться не только при щелчке на кноке, но и при переключении на другое окно.
• При изменении windowState c "normal" на "minimized" окно действительно сворачивается, но об этом можно не догадаться, т.к. при этом на экране остаётся след от окна, который затирается если поводить над ним указателеи мыши, подвгать окнами… Частично помогает window.blur() перед "minimized" — на других окнах, бывших под HTA следа не остаётся, но на рабочем столе остаётся. Поэтому перед "minimized" я решил убирать окно с экрана, запомнив его расположение.
Вот пример из загашника, он будет работать и при border="none" (хотя в целом, возможно, требует доработки):
<HTML>
<HEAD id="HeadElement">
<META http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<TITLE>Minimize</TITLE>
<HTA:APPLICATION></HTA:APPLICATION>
</HEAD>
<BODY>
<SCRIPT language='JavaScript' type='text/javascript'><!--
var HTA=document.getElementsByTagName("APPLICATION").item(0);
var Left, Top;
function Minimize() {
Left=window.screenLeft; Top=window.screenTop;
window.moveTo(0, -16000);
HTA.removeNode();
HTA.windowState="minimize";
HeadElement.appendChild(HTA);
//window.moveTo(Left, Top);
window.attachEvent("onfocus", OnRestore)
}
function OnRestore() {
window.moveTo(Left, Top);
window.detachEvent("onfocus", OnRestore)
}
document.attachEvent("onkeydown",
function () {if (event.keyCode==27 /*ESC*/) Minimize();}
);
// --></SCRIPT>
<DIV>Сворачивание окна HTA-приложения по клавише Esc.</DIV>
</BODY></HTML>
• Осталось лишь вместо отслеживания событий клавиатуры отслеживать утрату окном активности и в этом третья трудность, т.к. простой window.onblur срабатывает не только при переключение на другое окно, но и пре передаче фокуса от окна в целом к любому его элементу (например, текстовому полю) — мне самому хотелось бы знать решение этой задачи.