<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; HTA: Как убрать белое окно HTA при загрузке]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9915</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9915&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «HTA: Как убрать белое окно HTA при загрузке».]]></description>
		<lastBuildDate>Wed, 01 Oct 2014 04:33:26 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86918#p86918</link>
			<description><![CDATA[<p>Скрипт не останавливается. Суть в том, что пока Вы отрабатывает любой скрипт — никакой перерисовки не происходит. Именно потому всякие прогресс-бары «вешаются» на «.setInterval()».</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Wed, 01 Oct 2014 04:33:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86918#p86918</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86916#p86916</link>
			<description><![CDATA[<p>Вчера попробовал и с InnerHTML и с исчезновением и появлением:</p><div class="codebox"><pre><code>

            &#039; Видимость объектов
            Sub Hide(Object)
                Object.style.display = &quot;none&quot;
            End Sub
                
            Sub Show(Object)
                Object.style.display = &quot;inline&quot;
            End Sub

</code></pre></div><p>Скрипт останавливается. Вешал обработчик события на button, но после первой обработки HTA останавливается и приходится нажимать на на кнопку только тогда появляется или исчезает.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Wed, 01 Oct 2014 03:26:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86916#p86916</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86912#p86912</link>
			<description><![CDATA[<p>Скажите, а если я буду использовать символ &quot;|&quot;&nbsp; возможно ли будет производить заполнение им ? Например в разделе VBScript выполняется цикл и при прохождении определенного значения производится выполнение процедуры и происходит заполнение определенным количеством символов:</p><div class="codebox"><pre><code>

Sub BarSimvol() 
 Simvol = Simvol &amp;&quot;|&quot;
 Bar.InnerHTML = Simvol
End Sub

</code></pre></div><p>Возможно ли в HTA загрузить сначала всю разметку и все стили, а только потом начать выполнение цикла, который располагается в разделе VBScript и при выполнении цикла запускать процедуру BarSimvol()? И что б на форме было видно заполнение области символами &quot;|&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Tue, 30 Sep 2014 19:03:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86912#p86912</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86911#p86911</link>
			<description><![CDATA[<div class="quotebox"><cite>omegastripes пишет:</cite><blockquote><p><strong>wildwolf007</strong>, в качестве альтернативы можно держать все элементы GUI в одном файле HTA, но показывать только один из них. Например, в одном DIV&#039;e разместить прогресс-бар, в другом все остальлные элементы, при <br />этом оба DIV&#039;а скрыть <em>&lt;DIV style = &#039;display: none;&#039;&gt;&lt;!-- элементы --&gt;&lt;/DIV&gt;</em>. При загрузке HTA сразу изменить размеры окна под размеры прогресс-бара, и показать первый DIV, содержащий прогресс-бар. Когда необходимые файлы будут обработаны - вновь скрыть первый&nbsp; DIV, изменить размеры окна под размеры основного GUI, и показать второй DIV.<br />Очевидный плюс такого подхода - не понадобиться создавать дополнительных окон. При желании (и некоторых джедайских навыках) можно даже генерировать тот же прогресс-бар динамически прямо в окне HTA, а после того как он отработает - просто удалить узел DOM, представляющий прогресс-бар.</p></blockquote></div><p>Перечитал тему и осенило...<br />Спасибо <strong>omegastripes</strong> огромное - это ж достаточно просто я чето об этом и не подумал и заморачиваться по передаче от одного языка другому не нужно...</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Tue, 30 Sep 2014 17:57:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86911#p86911</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86829#p86829</link>
			<description><![CDATA[<div class="quotebox"><cite>wildwolf007 пишет:</cite><blockquote><p>... как можно использовать (Window.MoveTo -32000, -32000)??</p></blockquote></div><p>Код HTA<br /></p><div class="codebox"><pre><code>&lt;HTML&gt;
    &lt;HEAD&gt;
        &lt;SCRIPT LANGUAGE=&quot;VBScript&quot;&gt;
            Window.MoveTo -32000, -32000
        &lt;/SCRIPT&gt;
        &lt;TITLE&gt;Sample&lt;/TITLE&gt;
        &lt;HTA:APPLICATION
            ID=&quot;oHTA&quot;
            APPLICATIONNAME=&quot;myApp&quot;
            BORDER=&quot;thick&quot;
            BORDERSTYLE=&quot;normal&quot;
            CAPTION=&quot;yes&quot;
            ICON=&quot;&quot;
            MAXIMIZEBUTTON=&quot;yes&quot;
            MINIMIZEBUTTON=&quot;yes&quot;
            SHOWINTASKBAR=&quot;yes&quot;
            SINGLEINSTANCE=&quot;no&quot;
            SYSMENU=&quot;yes&quot;
            VERSION=&quot;1.0&quot;
            WINDOWSTATE=&quot;normal&quot; /&gt;
        &lt;SCRIPT LANGUAGE=&quot;VBScript&quot;&gt;
            Window.Alert &quot;OK to show window&quot;
            Window.MoveTo 0, 0
        &lt;/SCRIPT&gt;
    &lt;/HEAD&gt;
    &lt;BODY BGCOLOR=&quot;buttonface&quot;&gt;
        Content
    &lt;/BODY&gt;
&lt;/HTML&gt;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (omegastripes)]]></author>
			<pubDate>Sun, 28 Sep 2014 21:26:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86829#p86829</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86828#p86828</link>
			<description><![CDATA[<p><strong>omegastripes</strong>&nbsp; подскажите, а как можно использовать (Window.MoveTo -32000, -32000)??</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Sun, 28 Sep 2014 19:09:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86828#p86828</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86139#p86139</link>
			<description><![CDATA[<p>ок</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Tue, 26 Aug 2014 03:01:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86139#p86139</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86137#p86137</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Alexii - хотел просто что б мое сообщение не было сильно большим использовал 2 тега одновременно. На будущее буду использовать только code раз нельзя оба.</p></blockquote></div><p>Оба — можно, как Вы это делали в третьем коде. Но у Вас в первом и втором был только «spoiler», без «code».</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 25 Aug 2014 22:54:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86137#p86137</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86132#p86132</link>
			<description><![CDATA[<p>Alexii - хотел просто что б мое сообщение не было сильно большим использовал 2 тега одновременно. На будущее буду использовать только code раз нельзя оба.<br />Omegastripes - спасибо за идею чето я об этом не подумал хотя постоянно пользуюсь этим. Единственное сейчас буду думать как из js передать значения в vbs.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Mon, 25 Aug 2014 17:51:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86132#p86132</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86131#p86131</link>
			<description><![CDATA[<p><strong>wildwolf007</strong>, в качестве альтернативы можно держать все элементы GUI в одном файле HTA, но показывать только один из них. Например, в одном DIV&#039;e разместить прогресс-бар, в другом все остальлные элементы, при <br />этом оба DIV&#039;а скрыть <em>&lt;DIV style = &#039;display: none;&#039;&gt;&lt;!-- элементы --&gt;&lt;/DIV&gt;</em>. При загрузке HTA сразу изменить размеры окна под размеры прогресс-бара, и показать первый DIV, содержащий прогресс-бар. Когда необходимые файлы будут обработаны - вновь скрыть первый&nbsp; DIV, изменить размеры окна под размеры основного GUI, и показать второй DIV.<br />Очевидный плюс такого подхода - не понадобиться создавать дополнительных окон. При желании (и некоторых джедайских навыках) можно даже генерировать тот же прогресс-бар динамически прямо в окне HTA, а после того как он отработает - просто удалить узел DOM, представляющий прогресс-бар.</p>]]></description>
			<author><![CDATA[null@example.com (omegastripes)]]></author>
			<pubDate>Mon, 25 Aug 2014 16:26:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86131#p86131</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86101#p86101</link>
			<description><![CDATA[<p><span style="color: Green"><strong>wildwolf007</strong>, для оформления кода предназначен тэг «code», а не «spoiler».</span></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 25 Aug 2014 02:19:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86101#p86101</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86078#p86078</link>
			<description><![CDATA[<p>Ок&nbsp; <strong>omegastripes</strong> спасибо буду пробовать.</p><p>Перед загрузкой HTA предполагается что будут считываться файлы их около 5000 и что б пользователь понимал сколько еще ждать нужен именно прогресс бар.</p><p>Логика программы которую сейчас написал:<br />1) Считываются 5000 файлов.<br />2) Из файлов берется первые 2 строки - это название типов заявок.<br />3) Данные типы выводятся на форму<br />4) после на форме выводятся типы заявок и пользователь выбирает необходимый тип и по данному типу начинает производить поиск когда вводим какие -либо фразы происходит сортировка массива и отображаются файлы в которых есть данные совпадения потом пользователь выбирает отсортированные файлы и может сохранить.</p><p>Программку написал чисто для того что б облегчить поиск необходимых файлов для пользователей.<br />Но в момент загрузки всех файлов в массив,&nbsp; открывается белое окно HTA и идет загрузка после открывается программа.</p><p>Нужно что б шел процент загрузки или еще что пока не знаю что б пользователь видел что все нормально и идет загрузка файлов.</p><p>Подобрал 2 прогресс бара:<br />1)<br /></p><div class="codebox"><pre><code>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Тест&lt;/title&gt;
&lt;meta http-equiv=&quot;MSThemeCompatible&quot; content=&quot;Yes&quot;&gt;
&lt;meta name=&#039;resource-type&#039; content=&#039;application&#039;&gt;
&lt;meta name=&#039;author&#039; content=&#039;Shotman0&#039;&gt;
&lt;meta name=&#039;copyright&#039; content=&#039;Copyright (c) 2007 by shotman&#039;&gt;
&lt;meta http-equiv=&#039;Content-Type&#039; content=&#039;text/html; charset=windows-1251&#039;&gt;

&lt;script language=&quot;jscript&quot; type=&quot;text/jscript&quot;&gt;

function resizewin(w,h){
        var top = (screen.width-w)/2;
        var left = (screen.height-h)/2;
        resizeTo(w,h);
        moveTo(top,left);
}
resizewin(800,570);
function doNothing(){return true;}
//window.onerror = doNothing;

    function Start(){
        var d = document;
        var line = d.getElementById(&#039;process_line&#039;);
        var text = d.getElementById(&#039;text&#039;);
        var line_p = line.firstChild;
        var l = parseInt(document.getElementById(&#039;img&#039;).style.width.substring(0,(document.getElementById(&#039;img&#039;).style.width.length-1)));
        d.getElementById(&#039;bar&#039;).style.visibility = &#039;visible&#039;;
        Go();
    }
    
    function Go(){
        var step = 1;
        var l = parseInt(document.getElementById(&#039;img&#039;).style.width.substring(0,(document.getElementById(&#039;img&#039;).style.width.length-1)));
        document.getElementById(&#039;img&#039;).style.width = (l+parseInt(step))+&quot;%&quot;;
        document.getElementById(&#039;text&#039;).innerHTML = (l+parseInt(step))+&quot;%&quot;;
        if(document.getElementById(&#039;img&#039;).style.width!=&#039;100%&#039;){setTimeout(&#039;Go()&#039;,1)}
        else{
            animFade(document.getElementById(&#039;oppo&#039;),0);
            document.getElementById(&#039;oppo&#039;).display = &quot;none&quot;;
        }
    }
    
    function Reset(){
        var d = document;
        var line = d.getElementById(&#039;process_line&#039;);
        var text = d.getElementById(&#039;text&#039;);
        var line_p = line.firstChild;
        var l = line_p.style.width.substring(0,(line_p.style.width.length-1));    
        d.getElementById(&#039;bar&#039;).style.visibility = &#039;hidden&#039;;
        line_p.style.width = &quot;0%&quot;;
        text.innerHTML = &quot;0%&quot;;
    }
    
    function animFade(ref, counter){
        var f = ref.filters, done = (counter==100);
        if(f){
            for (i=ref.filters.alpha.opacity; i&gt;0; i--){            
                setTimeout(&#039;document.getElementById(&quot;oppo&quot;).filters.alpha.opacity=parseInt(document.getElementById(&quot;oppo&quot;).filters.alpha.opacity-1);&#039;,i*2);
               }
        }
        else ref.style.opacity = ref.style.MozOpacity = counter/100.1;
}

&lt;/script&gt;

&lt;style&gt;

*{
    padding:0px;
    margin:0px;
    font:11px Tahoma, Verdana, Arial, Helvetica, sans-serif;
    color:#000000;
}
table{
    border:0px;
    border-collapse:collapse;
}

#process_line{
    width:300px;
    height:5px;
    background-color:#FFFFFF;
    border:#CCCCCC 1px solid;
    text-align:left;
    margin-top:3px;
}

#bar{
    text-align:center;
    padding-top:200px;
    visibility:hidden;
}

#text{
    font-size:10px;
    color:#0000CC;
    font:Verdana, Arial, Helvetica, sans-serif;
}

&lt;/style&gt;
&lt;body bgcolor=&quot;#ffffff&quot; onLoad=&quot;Start()&quot;&gt;

&lt;hta:application
    id=&quot;processbar&quot;
    applicationName=&quot;processbar&quot;
    contextMenu=&quot;no&quot;
    icon=&quot;files/data/admin.ico&quot;
    scroll=&quot;no&quot;
    scrollFlat=&quot;yes&quot;
    selection=&quot;no&quot;
    singleInstance=&quot;yes&quot;
    version=&quot;1.0&quot;
    navigable=&quot;yes&quot;
    windowstate=&quot;normal&quot;
/&gt;

&lt;div id=&quot;oppo&quot; style=&quot;position:relative; z-index:99; height:150px; background-color:#FFFFFF; filter:Alpha(Opacity=100)&quot;&gt;&amp;nbsp;&lt;div&gt;
&lt;div id=&quot;bar&quot;&gt;
&lt;span id=&quot;text&quot;&gt;&amp;nbsp;&lt;/span&gt;
&lt;div id=&quot;process_line&quot;&gt;&lt;img id=&quot;img&quot; style=&quot;background-color:#000099; width:0%; height:3px; filter:Alpha(Opacity=10, FinishOpacity=90, Style=1, StartX=X, StartY=Y, FinishX=X, FinishY=Y) &quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;</code></pre></div><p>2)</p><div class="codebox"><pre><code>

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;
&lt;html&gt;
&lt;!--
Пример использования прогресс-бара на платформе HTA (Microsoft Internet Explorer 5.5)
По мотивам http://webo.in/articles/habrahabr/13-cpu-intensive-javascript/
Специально для http://www.script-coding.com/
Calpy, 2008
--&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=windows-1251&quot; /&gt;
&lt;title&gt;Process Bar&lt;/title&gt;
&lt;hta:application id=&quot;processbar&quot; scroll=&quot;no&quot; innerborder=&quot;no&quot; icon=&quot;%windir%\notepad.exe&quot; border=&quot;dialog&quot;/&gt;
&lt;script&gt;var w= {h: 200, w: 400}; window.resizeTo(w.w, w.h); window.moveTo((screen.width - w.w)/2, (screen.height - w.h)/2.5)&lt;/script&gt;
&lt;style&gt;
&lt;!--
body                {background-color: buttonface; text-align: center;}
input                 {font: normal 11px/11px verdana, sans-serif; margin: 1em;}

#div_progress        {position: relative; width: 300px; height: 20px; border: 0.5pt groove; background: white; margin-top: 50px; text-align: left;}
#div_progress div     {background: #316AC5; width: 0; height: 100%;}
--&gt;
&lt;/style&gt;
&lt;script&gt;
&lt;!--
// реализация &quot;прогресса&quot;
function t_progress(qtotal, qstep_time, qcall_back)
{
    var astep_time= qstep_time || 40    // частота обновления, мс
    var astart= new Date().getTime()    // время начала работы
    var astep= astart                    // время последнего обновления
    var ais_run= true                    // флаг работы (при частом обновлении, после завершения работы процесса, могут оставаться необработанными запросы на обновление)

    function stop()                     // завершение работы
    {
        alert(&quot;Total duration: &quot; + ((astep - astart)/1000) + &quot; seconds&quot;)
        ais_run= false
        if (qcall_back) qcall_back()
    }
    this.is_step= function() {return new Date().getTime() - astep &gt; astep_time}    // проверка на необходимость обновления (чтоб слишком часто не мигал, загружая систему)
    this.set= function(qval)            // установка значения (обновление)
    {
        astep= new Date().getTime()
        document.getElementById(&quot;div_progress&quot;).firstChild.style.width= (100*qval/qtotal) + &quot;%&quot;
        if (ais_run &amp;&amp; qval &gt;= qtotal) stop()
    }
}

// провервка работы &quot;прогресса&quot;
function test()
{
    // готовим данные какого-то процесса (здесь: сортировка массива)
    var data= new Array(1000); for (var i= 0; i &lt; data.length; ++i) data[i]= Math.floor(data.length*Math.random())
    alert(&quot;Начальные данные:\n&quot; + data)
    var i= 0 // важно делать глобальной относительно функции процесса

    // говорим, что надо делать после завершения процесса
    function outro()
    {
        alert(&quot;Конечные данные:\n&quot; + data)
    }

    // собственно сам процесс
    var aprogress= new t_progress(data.length, 40, outro);                        // &quot;прогресс&quot;: создаем
    (function ()
    {
        while (i &lt; data.length)
        {
            for (var j= data.length; j &gt; i; j--) if (data[j] &lt; data[j - 1]) {var v= data[j]; data[j]= data[j - 1]; data[j - 1]= v}
            ++i

            if (aprogress.is_step()) {setTimeout(arguments.callee, 0); break}    // &quot;прогресс&quot;: проверка по времени, надо ли обновлять
        }
        aprogress.set(i)                                                        // &quot;прогресс&quot;: установка значения (обновление)
    })()

    /* outro() // мы уже здесь, а процесс-то фактически еще идет... поэтому outro() вызывается как callback-функция */
}
//--&gt;
&lt;/script&gt;
&lt;/head&gt;


&lt;body&gt;
&lt;div id=&quot;div_progress&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;input type=&quot;button&quot; value=&quot;Старт&quot; onclick=&quot;this.disabled= true; test()&quot;&gt;
&lt;/body&gt;
&lt;/html&gt;

</code></pre></div><br /><p>Прогресс бары которые сейчас нашел работают на JS и соответственно нужно будет производить слияние между 2мя языками то б они друг в друга передавали данные.</p><p>А на IE вроде все написано на VBS поэтому и думал использовать VBS.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Sun, 24 Aug 2014 09:42:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86078#p86078</guid>
		</item>
		<item>
			<title><![CDATA[Re: HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86072#p86072</link>
			<description><![CDATA[<p><strong>wildwolf007</strong>, не запускал Ваш код, но, на мой взгляд, целесообразно добавить в <em>&lt;HEAD&gt;</em> в самом начале скрипта код, прячущий окно HTA за пределами экрана (<em>Window.MoveTo -32000, -32000</em>), чтобы не отсвечивало, и уже после этого создавать прогресс-бар, а как тот отработает - вернуть окно обратно. Касательно прогресс-бара - я бы создал отдельное окно HTA без использования <em>IE</em> и временных файлов (вот <a href="http://forum.script-coding.com/viewtopic.php?pid=75356#p75356">пример динамического создания окна</a>). В этом случае код самого прогрес-бара придется допилить, и если за основу брать имеющийся код для IE, следует обратить внимание, что свойства и методы экземпляра <em>&quot;InternetExplorer.Application&quot;</em> (тип <em>IWebBrowser2</em>) заметно отличаются от объекта <em>window </em>окна HTA (тип <em>HTMLWindow2</em>), не смотря на то, что их свойства <em>.document</em>, представляющие HTML DOM, идентичны (тип <em>HTMLDocument</em>).</p>]]></description>
			<author><![CDATA[null@example.com (omegastripes)]]></author>
			<pubDate>Sat, 23 Aug 2014 19:39:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86072#p86072</guid>
		</item>
		<item>
			<title><![CDATA[HTA: Как убрать белое окно HTA при загрузке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=86051#p86051</link>
			<description><![CDATA[<p>При загрузке можно что б сначала загрузился прогресс бар, а потом только окно HTA когда прогресс бар дойдет до конца ?<br />Ну и что б это все было в одном файле.</p><p>Почему-то прогресс бар не считает проценты.</p><br /><div class="codebox"><pre><code>&lt;html&gt;
  &lt;head&gt;
        &lt;title&gt;Прогресс бар&lt;/title&gt;
        &lt;hta:application
            id = &quot;oHTA&quot;
            ApplicationName = &quot;Старт&quot;
            Border = &quot;Dialog&quot;
            BorderStyle = &quot;Complex&quot;
            Caption = &quot;Yes&quot;
            ContextMenu = &quot;No&quot;
            Icon = &quot;C:\Windows\write.exe&quot;
            InnerBorder = &quot;No&quot;
            MaximizeButton = &quot;Yes&quot;
            MinimizeButton = &quot;Yes&quot;
            Navigable = &quot;No&quot;
            Scroll = &quot;No&quot;
            ScrollFlat = &quot;No&quot;
            Selection = &quot;No&quot;
            ShowInTaskBar = &quot;No&quot;
            SingleInstance = &quot;Yes&quot;
            SysMenu = &quot;Yes&quot;
            Version = &quot;1.0&quot;
            WindowState = &quot;Normal&quot;
        /&gt;


        &lt;script language=&quot;vbscript&quot;&gt;
        
                    
            Dim bar, i
            Set bar = new IEProgBar
            With bar
                .Move -1, -1, 500, -1
                .Units = 5
                .Show
                WScript.Sleep 500
                .Caption = &quot;Выполнение: 0%...&quot;
                WScript.Sleep 500
                For i = 0 to 4
                    WScript.Sleep 500 &#039; вместо этого здесь может быть ваш код, выполняющий нужную вам работу
                    .Caption = &quot;Выполнение: &quot; &amp; Round((i+1)*100/5, 0) &amp; &quot;%...&quot;
                    .Advance
                    MsgBox 1
                Next
            End With
            WScript.Sleep 1000
            Set bar = Nothing

            &#039;--- //////////////////////////////////////////////////////////////////////////////////////////////
            &#039;
            &#039;Класс IEProgBar, который может быть вставлен в любой скрипт.
            &#039;Чтобы создать индикатор прогресса, напишите:
            &#039;
            &#039;Dim ob
            &#039;Set ob = New IEProgBar
            &#039;
            &#039;Индикатор прогресса создается в виде HTML файла,
            &#039;который записывается в директорию временных файлов и открывается оттуда.
            &#039;
            &#039;Свойства и методы:
            &#039;
            &#039;Методы -
            &#039;
            &#039;    Show - показывает индикатор прогресса, записывая HTML файл, открывая его в IE и делая IE видимым.
            &#039;    Advance - заполняет индикатор прогресса на одну ячейку.
            &#039;    Move(Left, Top, Width, Height) - Изменение размеров и/или позиции окна.
            &#039;        Используйте -1 для любого параметра, который вы не хотите менять.
            &#039;        Размер по умолчанию - 400x120, положение окна определяет Windows.
            &#039;    CleanIETitle - удаляет параметры настройки реестра, отвечающие за заголовок IE, делая заголовок IE более компактным.
            &#039;        Это - глобальное изменение для IE, которое необратимо этим сценарием (тем не менее, это достаточно безопасное изменение).
            &#039;
            &#039;Свойства -
            &#039;
            &#039;    BackColor - 6-символьный шестнадцатеричный код цвета фона. По умолчанию - &quot;E0E0E4&quot;.
            &#039;    TextColor - 6-символьный шестнадцатеричный код цвета текста. По умолчанию - &quot;000000&quot;.
            &#039;    ProgressColor - 6-символьный шестнадцатеричный код цвета индикатора прогресса. По умолчанию - &quot;0000A0&quot;.
            &#039;    Title - текст заголовка окна. По умолчанию - &quot;Ожидание&quot;.
            &#039;    Caption - текст надписи в окне. По умолчанию - &quot;Подождите...&quot;
            &#039;    Units - количество единиц индикатора прогресса. По умолчанию - 20.
            &#039;
            &#039;--- ///////////////////////////////////////////////////////////////////////////////////////////////

            &#039;--------  КЛАСС IEProgBar ----------------------------------
            Class IEProgBar
                Private FSO, IE, BCol, TCol, ProgCol, ProgNum, ProgCaption, Q2, sTemp, iProg, ProgTitle

                Private Sub Class_Initialize()
                    On Error Resume Next
                    Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
                    sTemp = FSO.GetSpecialFolder(2)
                    Set IE = CreateObject(&quot;InternetExplorer.Application&quot;) 
                    With IE
                        .AddressBar = False
                        .menubar = False
                        .ToolBar = False
                        .StatusBar = False
                        .width = 400
                        .height = 180
                        .resizable = False
                    End With    
                    BCol = &quot;E0E0E4&quot;              &#039;цвет фона по умолчанию
                    TCol = &quot;000000&quot;              &#039;цвет текста надписи по умолчанию
                    ProgCol = &quot;0000A0&quot;           &#039;цвет индикатора прогресса по умолчанию
                    ProgNum = 20                 &#039;количество единиц индикатора прогресса по умолчанию
                    ProgCaption = &quot;Подождите...&quot; &#039;надпись по умолчанию
                    ProgTitle = &quot;Ожидание&quot;       &#039;заголовок окна по умолчанию
                    Q2 = chr(34) &#039;двойная кавычка (для HTML-вёрстки)
                    iProg = 0                    &#039;заполнение индикатора прогресса
                End Sub

                Private Sub Class_Terminate()
                    On Error Resume Next
                    IE.Quit
                    Set IE = Nothing
                    Set FSO = Nothing
                End Sub

                Public Sub Show()
                    Dim s, i, TS
                    On Error Resume Next
                    s = &quot;&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;&quot; &amp; ProgTitle &amp; &quot;&lt;/TITLE&gt;&lt;/HEAD&gt;&quot;
                    s = s &amp; &quot;&lt;BODY SCROLL=&quot; &amp; Q2 &amp; &quot;NO&quot; &amp; Q2 &amp; &quot; BGCOLOR=&quot; &amp; Q2 &amp; &quot;#&quot; &amp; BCol &amp; Q2 &amp; &quot; TEXT=&quot; &amp; Q2 &amp; &quot;#&quot; &amp; TCol &amp; Q2 &amp; &quot;&gt;&quot;
                    If (ProgCaption &lt;&gt; &quot;&quot;) Then
                        s = s &amp; &quot;&lt;FONT FACE=&quot; &amp; Q2 &amp; &quot;arial&quot; &amp; Q2 &amp; &quot; SIZE=2&gt;&lt;LABEL ID=&quot; &amp; Q2 &amp; &quot;Cap1&quot; &amp; Q2 &amp; &quot;&gt;&quot; &amp; ProgCaption &amp; &quot;&lt;/LABEL&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&quot;
                    Else
                        s = s &amp; &quot;&lt;BR&gt;&quot;
                    End If
                    s = s &amp; &quot;&lt;TABLE BORDER=1&gt;&lt;TR&gt;&lt;TD&gt;&lt;TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0&gt;&lt;TR&gt;&quot;
                    For i = 1 to ProgNum
                        s = s &amp; &quot;&lt;TD WIDTH=16 HEIGHT=16 ID=&quot; &amp; Q2 &amp; &quot;P&quot; &amp; Q2 &amp; &quot;&gt;&quot;
                    Next
                    s = s &amp; &quot;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;BR&gt;&lt;BR&gt;&lt;/BODY&gt;&lt;/HTML&gt;&quot;         
                    Set TS = FSO.CreateTextFile(sTemp &amp; &quot;\iebar1.html&quot;, True)
                    TS.Write s
                    TS.Close
                    Set TS = Nothing
                    IE.Navigate &quot;file:///&quot; &amp; sTemp &amp; &quot;\iebar1.html&quot;
                    IE.visible = True
                End Sub
               
                &#039;Метод Advance раскрашивает одну ячейку индикатора прогресса.
                &#039;Переменная iProg отслеживает, сколько ячеек было раскрашено.
                &#039;Каждая ячейка индикатора прогресса является тегом &lt;TD&gt; с идентификатором ID=&quot;P&quot;.
                &#039;К этим тегам можно обратиться через Document.All.Item.
                Public Sub Advance()
                    On Error Resume Next
                    If (iProg &lt; ProgNum) and (IE.Visible = True) Then
                        IE.Document.All.Item(&quot;P&quot;, (iProg)).bgcolor = Q2 &amp; &quot;#&quot; &amp; ProgCol &amp; Q2
                        iProg = iProg + 1
                    End If   
                End Sub

                &#039;Изменение размеров и/или позиции окна. Используйте -1 для любого параметра, который вы не хотите менять.
                Public Sub Move(PixLeft, PixTop, PixWidth, PixHeight)
                    On Error Resume Next
                    If (PixLeft &gt; -1) Then IE.Left = PixLeft
                    If (PixTop &gt; -1) Then IE.Top = PixTop
                    If (PixWidth &gt; 0) Then IE.Width = PixWidth
                    If (PixHeight &gt; 0) Then IE.Height = PixHeight
                End Sub

                &#039;Удаление параметров настройки реестра, отвечающих за заголовок IE.
                &#039;Это изменение не будет иметь эффекта при первом использовании, поскольку экземпляр IE уже был создан перед вызовом метода.
                Public Sub CleanIETitle()
                    Dim sR1, sR2, SH
                    On Error Resume Next
                    sR1 = &quot;HKLM\Software\Microsoft\Internet Explorer\Main\Window Title&quot;
                    sR2 = &quot;HKCU\Software\Microsoft\Internet Explorer\Main\Window Title&quot;
                    Set SH = CreateObject(&quot;WScript.Shell&quot;)
                    SH.RegWrite sR1, &quot;&quot;, &quot;REG_SZ&quot;
                    SH.RegWrite sR2, &quot;&quot;, &quot;REG_SZ&quot;
                    Set SH = Nothing
                End Sub

                &#039;------------- Установка цвета фона: ---------------------

                Public Property Let BackColor(sCol)
                    If (TestColor(sCol) = True) Then BCol = sCol
                End Property
             
                &#039;------------- Установка цвета текста: --------------------

                Public Property Let TextColor(sCol)
                    If (TestColor(sCol) = True) Then TCol = sCol
                End Property
             
                &#039;------------- Установка цвета индикатора прогресса: ------

                Public Property Let ProgressColor(sCol)
                    If (TestColor(sCol) = True) Then ProgCol = sCol
                End Property

                &#039;------------- Установка заголовкеа окна: ------------------

                Public Property Let Title(sCap)
                    ProgTitle = sCap
                End Property
             
                &#039;------------- Установка текста: ----------------------------

                Public Property Let Caption(sCap)
                    On Error Resume Next
                    ProgCaption = sCap
                    IE.Document.parentWindow.Cap1.innerText = sCap
                End Property

                &#039;----- Установка количества единиц индикатора прогресса: -----

                Public Property Let Units(iNum)
                    ProgNum = iNum
                End Property
             
                &#039;Проверка корректности заданного цвета: цвет должен содержать 6 символов 0-9 или A-F.
                &#039;Возвращается True (цвет корректен) или False.
                Private Function TestColor(Col6)
                    Dim iB, sB, iB2, Boo1
                    On Error Resume Next
                    TestColor = False
                    If (Len(Col6) &lt;&gt; 6) Then Exit Function
                    For iB = 1 to 6
                        sB = Mid(Col6, iB, 1)
                        iB2 = Asc(UCase(sB))
                        If ((iB2 &gt; 47) and (iB2 &lt; 58)) or ((iB2 &gt; 64) and (iB2 &lt; 71)) Then
                            Boo1 = True
                        Else
                            Boo1 = False
                            Exit For
                        End If
                    Next
                    If (Boo1 = True) Then TestColor = True
                End Function
            End Class
        
        
        &lt;/script&gt;
        

            
        
  &lt;/head&gt;
    
  &lt;body onload=&quot;WindowOnLoad()&quot;&gt;
 
    
    
    &lt;td id=&quot;DynamicContent_Cell&quot;&gt;
        &lt;div id=&quot;DynamicContent_Div&quot;&gt;
            Добро пожаловать!!!
        &lt;/div&gt;
    &lt;/td&gt;

  &lt;/body&gt;
    

&lt;/html&gt;
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 22 Aug 2014 19:45:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=86051#p86051</guid>
		</item>
	</channel>
</rss>
