1

Тема: HTA: Запуск HTA в скрытом режиме.

Доброго времени суток. Задача: запустить HTA скрытым, загрузить все, что нужно (5-10 сек), отобразить HTA.

2 (изменено: wisgest, 2015-02-25 04:57:47)

Re: HTA: Запуск HTA в скрытом режиме.

Окно HTA становится видимым при наступлении одного из двух событий:
1) загрузки элемента <HTA:APPLICATION />;
2) полной загрузки исходного кода.

Отложить второе событие довольно затруднительно

+ открыть спойлер

(если не ошибаюсь, что-то такое возможно с помощью
document.documentElement.removeNode();
также, возможно, чем-то окажутся полезны сообщения 1-6 из темы
CMD/BAT + HTML: два в одном)

,
поэтому можно предложить двухступенчатый запуск:

способ 1)

WshShell.Run("file.hta", 0);

file.hta

Hello, world!
<script>
setTimeout(Show, 3000);

function Show() {
    hta = document.createElement("HTA:APPLICATION");
    document.appendChild(hta);
}
</script>

способ 2)

mshta.exe "javascript:document.write((new ActiveXObject('Scripting.FileSystemObject')).OpenTextFile('file.hta').ReadAll());"

file.hta

Hello, world!
<script>
setTimeout(Show, 3000);

function Show() {document.close();}
</script>

3

Re: HTA: Запуск HTA в скрытом режиме.

Да... Извращение...
Пока сделал так: в самом первом <script> сдвигаю окно вправо, за границы экрана (субъективно, моргание незаметно), далее, в window.onload, после выполнения всех операций (загрузка базы, анализ и проч.) ставлю окно на место. Если не сдвигать, окошко отображается, но некоторые элементы не до конца прорисовываются.