<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; WSH: JS: Индикация работы "долгоиграющего" скрипта]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8892&amp;type=atom" />
	<updated>2013-11-11T09:26:01Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8892</id>
		<entry>
			<title type="html"><![CDATA[WSH: JS: Индикация работы "долгоиграющего" скрипта]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=77141#p77141" />
			<content type="html"><![CDATA[<p>У скриптов есть большой плюс: скрипт может работать незаметно, нигде ничего не отображая. Но, если скрипт работает достаточно долго, это уже минус: про него можно нечаянно забыть. HTA для &quot;долгоиграющих&quot; задач - тоже не вариант, IE запарит своими &quot;скрипт на странице тормозит всё, что может...&quot; Вот протез, создающий hta динамически из скрипта, при этом HTA никого не тормозит, а скрипт его закроет перед завершением. Индикация - в панели задач.</p><div class="codebox"><pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;job id=&quot;run&quot; version=&quot;0.1&quot;&gt;
  &lt;object id=&quot;f&quot; progid=&quot;Scripting.FileSystemObject&quot; /&gt;
  &lt;object id=&quot;s&quot; progid=&quot;WScript.Shell&quot; /&gt;
  &lt;script type=&quot;text/jscript&quot; language=&quot;JScript&quot;&gt;&lt;![CDATA[
    var
     u=&#039;mshta &quot;about:&#039;+getResource(&#039;h&#039;).replace(/[\s\r\n]+/g,&#039; &#039;)+&#039;&quot;&#039;,
     v=&#039;&quot;&#039;+f.getSpecialFolder(2).path.replace(/\\/g,&#039;\\\\&#039;)+&#039;\\\\&quot;&#039;;
    for(var i=0;i&lt;3;i++)fa(i);
    u=u.replace(&#039;@@@&#039;,v);
    v=s.exec(u);


    // вместо паузы здесь помещаем полезный код
    WScript.sleep(10000);
    // или вызываем его из другого job&#039;а


    v.terminate();
    function fa(e){    // создаём иконки в %TEMP%
      with(new ActiveXObject(&quot;ADODB.Stream&quot;)){
        Type=2;
        charset=&#039;ibm866&#039;;
        open();
        writeText(unescape(getResource(&#039;i&#039;+e).replace(/\s+/g,&#039;&#039;)));
        saveToFile(f.getSpecialFolder(2)+&#039;\\&#039;+e+&#039;.ico&#039;,2);
        close();
      }
    }
  ]]&gt;&lt;/script&gt;
  &lt;resource id=&quot;h&quot;&gt;&lt;![CDATA[
    &lt;html&gt;
    &lt;head&gt;
      &lt;hta:application windowState=&quot;minimize&quot; /&gt;
      &lt;title&gt;Я занят!&lt;/title&gt;
      &lt;script&gt;
        var
         a=document.getElementsByTagName(&#039;application&#039;)[0],
         c=0,
         t=@@@;
        window.setInterval(fa,250);
        self.resizeTo(0,0);
        self.moveTo(-100,-100);

        function fa(){
          c=(c&gt;2?0:c);
          a.removeNode();
          a.icon=t+c+&#039;.ico&#039;;
          document.getElementsByTagName(&#039;head&#039;)[0].appendChild(a);
          c++;
        };
      &lt;/script&gt;
    &lt;/head&gt;
    &lt;/html&gt;    
  ]]&gt;&lt;/resource&gt;
  &lt;resource id=&quot;i0&quot;&gt;&lt;![CDATA[
    %00%00%01%00%01%00%10%10%02%00%01%00%01%00%u2591%00%00%00%16%00%00%00%28%00%00%00%10%00
    %00%00%20%00%00%00%01%00%01%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%A0%A0%00%00%A0%A0%00%00%A0%A0
    %00%00%u2514%03%00%00%u2580%A0%00%00%u2568%17%00%00%u256B%u0443%00%00%11%u2554%00%00%u0
    423%u0418%00%00%u255F%u044B%00%00%u0448%0B%00%00%A0%u221A%00%00%u2514%03%00%00%A0%A0%00
    %00%A0%A0%00%00%A0%A0%00%00
  ]]&gt;&lt;/resource&gt;
  &lt;resource id=&quot;i1&quot;&gt;&lt;![CDATA[
    %00%00%01%00%01%00%10%10%02%00%01%00%01%00%u2591%00%00%00%16%00%00%00%28%00%00%00%10%00
    %00%00%20%00%00%00%01%00%01%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%A0%A0%00%00%A0%u2510%00%00%A0
    %3F%00%00%u2590%03%00%00%u2584%u221A%00%00%u2553%0B%00%00%u256B+%00%00%u256B%u043B%00%0
    0%u2552%u044B%00%00%u2558%u044B%00%00%u2568k%00%00%u2580%3B%00%00%u2514%7B%00%00%u2116%
    A0%00%00%A4%A0%00%00%A0%A0%00%00
  ]]&gt;&lt;/resource&gt;
  &lt;resource id=&quot;i2&quot;&gt;&lt;![CDATA[
    %00%00%01%00%01%00%10%10%02%00%01%00%01%00%u2591%00%00%00%16%00%00%00%28%00%00%00%10%00
    %00%00%20%00%00%00%01%00%01%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00
    %00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%A0%A0%00%00%u045E%A0%00%00%u0
    447%A0%00%00%u2514%03%00%00%u042F%u221A%00%00%u2514%0B%00%00%u0447%u044B%00%00%u045E%u2
    21A%00%00%u2580%u044F%00%00%u256B%u0447%00%00%u2568%03%00%00%u2580%u2219%00%00%u2514%03
    %00%00%A0%u0447%00%00%A0%u044F%00%00%A0%A0%00%00
  ]]&gt;&lt;/resource&gt;
&lt;/job&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Serge Yolkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27503</uri>
			</author>
			<updated>2013-11-11T09:26:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=77141#p77141</id>
		</entry>
</feed>
