<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Запуск 3 программ]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5024&amp;type=atom" />
	<updated>2010-11-10T03:11:09Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5024</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41420#p41420" />
			<content type="html"><![CDATA[<p>Большое спасибо всем за помощь, скрипт работает.</p>]]></content>
			<author>
				<name><![CDATA[0meg@]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25256</uri>
			</author>
			<updated>2010-11-10T03:11:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41420#p41420</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41295#p41295" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>0meg@ пишет:</cite><blockquote><p>Можно увидеть полный текст для метода WshShell.AppActivate, …</p></blockquote></div><p>Примерно так:<br /></p><div class="codebox"><pre><code>Option Explicit

RunWaitWindow &quot;C:\Program Files\Microsoft Office\OFFICE11\winword.exe&quot;, &quot;Microsoft Word&quot;
RunWaitWindow &quot;C:\Program Files\Microsoft Office\OFFICE11\excel.exe&quot;, &quot;Microsoft Excel&quot;
RunWaitWindow &quot;C:\Windows\System32\notepad.exe&quot;, &quot;Блокнот&quot;

WScript.Quit 0
&#039;=============================================================================

&#039;=============================================================================
Sub RunWaitWindow(strApp, strWindowTitle)
    With WScript.CreateObject(&quot;WScript.Shell&quot;)
        If .Run(&quot;&quot;&quot;&quot; &amp; strApp &amp; &quot;&quot;&quot;&quot;, 1) = 0 Then
            Do 
                WScript.Sleep 100
            Loop Until .AppActivate(strWindowTitle)
        Else
            WScript.Echo &quot;Приложение «&quot; &amp; strApp &amp; &quot;» не удалось запустить&quot;
        End If
    End With
End Sub
&#039;=============================================================================</code></pre></div><p>Вторым параметром в «RunWaitWindow» указывать постоянную часть заголовка окна; эта часть должна приходиться либо на начало, либо на конец заголовка окна.<br /></p><div class="quotebox"><cite>0meg@ пишет:</cite><blockquote><p>…я так понял это тоже сработает.</p></blockquote></div><p>Да, коллега <strong>YMP</strong> <a href="http://forum.script-coding.com/viewtopic.php?pid=41148#p41148">просветил</a> меня в этом отношении.<br /></p><div class="quotebox"><cite>0meg@ пишет:</cite><blockquote><p>…можно увидеть как будет выглядить скрипт полностью на языке AutoIt?</p></blockquote></div><p>Почти без изменений:<br /></p><div class="codebox"><pre><code>AutoItSetOption(&quot;MustDeclareVars&quot;, 1)

If RunWaitWindow(&quot;C:\Program Files\Microsoft Office\OFFICE11\winword.exe&quot;, @MyDocumentsDir, &quot;[CLASS:OpusApp]&quot;, 30) Then
    If RunWaitWindow(&quot;C:\Program Files\Microsoft Office\OFFICE11\excel.exe&quot;, @MyDocumentsDir, &quot;[CLASS:XLMAIN]&quot;, 30) Then
        If RunWaitWindow(&quot;C:\Windows\System32\notepad.exe&quot;, &quot;E:\Песочница&quot;, &quot;[CLASS:Notepad]&quot;, 10) Then
            ConsoleWrite(&quot;Все приложения запущены успешно&quot; &amp; @CRLF)
        EndIf
    EndIf
EndIf

Exit(0)
;=============================================================================

;=============================================================================
Func RunWaitWindow($sApp, $sWorkingDir, $sWindowTitle, $iWaitInterval)
    Local $bResult = False

    If Run(&quot;&quot;&quot;&quot; &amp; $sApp &amp; &quot;&quot;&quot;&quot;, $sWorkingDir, @SW_SHOW) &lt;&gt; 0 Then
        If WinWait($sWindowTitle, &quot;&quot; , $iWaitInterval) &lt;&gt; 0 Then
            $bResult = True
        Else
            ConsoleWriteError(&quot;Окно «&quot; &amp; $sWindowTitle &amp; &quot;» не найдено&quot; &amp; @CRLF)
        EndIf
    Else
        ConsoleWriteError(&quot;Приложение «&quot; &amp; $sApp &amp; &quot;» не удалось запустить&quot; &amp; @CRLF)
    EndIf

    Return $bResult
EndFunc
;=============================================================================</code></pre></div><p>Разве что «WinWait()» при успехе возвращает не просто «1», а хэндл окна.</p><p>Это достаточно просто. А вот ежели нужно будет запускать и отслеживать появление окон именно запускаемых экземпляров приложений (например, запускаем «Блокнот», а у нас уже есть несколько запущенных «Блокнотов»), тогда только AutoItX/AutoIt/PoSH.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-07T09:17:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41295#p41295</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41290#p41290" />
			<content type="html"><![CDATA[<p>Можно увидеть полный текст для метода WshShell.AppActivate, я так понял это тоже сработает.<br />3 программы действительно будут запускаться на &quot;свободной\пустой&quot; машине, без других приложений, о задержке при вызове я тоже думал, но конечно если бы можно было бы все сделать правильно и запускать программы поочередно как сейчас через AutoIT, но в рамках одного языка скажем VBS + WSH было бы лучше. Кстати если не трудно можно увидеть как будет выглядить скрипт полностью на языке AutoIt?</p>]]></content>
			<author>
				<name><![CDATA[0meg@]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25256</uri>
			</author>
			<updated>2010-11-07T05:07:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41290#p41290</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41239#p41239" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Аскет пишет:</cite><blockquote><p>bat-скрипт конечно-же работает…</p></blockquote></div><p>Не работает. Наивно полагать, что запуск приложения в реальных условиях будет всегда занимать заданное время.<br /></p><div class="quotebox"><cite>Аскет пишет:</cite><blockquote><p>…в отличии например от предложенного Вами vbs&#039;а с внешними библиотеками и всякими костылями</p></blockquote></div><p>Обоснуйте, пожалуйста, про «…всякие костыли», коллега.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-05T07:10:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41239#p41239</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41220#p41220" />
			<content type="html"><![CDATA[<p>Уже и ошибка где-то появилась? <img src="//forum.script-coding.com/img/smilies/lol.png" width="15" height="15" /><br /><strong>bat</strong>-скрипт конечно-же работает в стиле &quot;гротеск&quot;, но от этого нисколько не хромает (в отличии например от предложенного Вами vbs&#039;а с внешними библиотеками и всякими костылями) <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2010-11-04T16:37:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41220#p41220</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41212#p41212" />
			<content type="html"><![CDATA[<p>Это теперь так называется отсутствие аргументов и нежелание признать свою ошибку?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-04T08:28:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41212#p41212</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41210#p41210" />
			<content type="html"><![CDATA[<p>Помоему, уже пошла откровенная демагогия.</p>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2010-11-04T01:12:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41210#p41210</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41190#p41190" />
			<content type="html"><![CDATA[<p>Замерьте время, тщательнейшим образом всё рассчитайте, сделайте Ваш скрипт. Запустите. Всё работает.</p><p>Теперь запустите простой скрипт (для одного ядра; для двух и более запустите по такому скрипту на каждое ядро, назначив им соответствие в диспетчере задач):<br /></p><div class="codebox"><pre><code>Do
    a = 2
Loop</code></pre></div><p>Попробуйте теперь запустить Ваш скрипт. Как думаете, насколько удачно он отработает?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-03T10:59:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41190#p41190</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41189#p41189" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>это говорит о том что запуск ПО происходит на &quot;пустом&quot; рабочем столе</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2010-11-03T10:52:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41189#p41189</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41178#p41178" />
			<content type="html"><![CDATA[<p>Это ни о чём не говорит.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-03T08:58:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41178#p41178</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41176#p41176" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>и зависит от ряда величин в данный конкретный момент времени - загрузки процессора, количества свободной физической памяти (свопирование).</p></blockquote></div><p>Думаю, НЕ в данном случае:</p><div class="quotebox"><blockquote><p>имено в таком порядке на панели задач (Панель ПУСК, Панель Quick Launch, 3DsMax, PROMT 8, notepad)</p></blockquote></div><p>это говорит о том что запуск ПО происходит на &quot;пустом&quot; рабочем столе (т.е. когда панель задач ещё пустая), что в конечном итоге говорит нам о том что память свободна.<br /><img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2010-11-03T08:53:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41176#p41176</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41149#p41149" />
			<content type="html"><![CDATA[<p>Значит, меня подвело опять знание иностранного языка <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-02T12:29:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41149#p41149</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41148#p41148" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><div class="quotebox"><cite>AppActivate Method пишет:</cite><blockquote><p>…but it does not affect whether it is maximized or minimized.</p></blockquote></div></blockquote></div><p>Ну и что? Что в этой фразе такого? Активирует, не меняя макси/минимизированного состояния.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2010-11-02T12:11:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41148#p41148</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41147#p41147" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>А может, делать в цикле WshShell.AppActivate, пока не вернёт код успеха, а потом уже запускать следующую программу?</p></blockquote></div><p>Я тоже сразу про это подумал, но отказался из-за:<br /></p><div class="quotebox"><cite>AppActivate Method пишет:</cite><blockquote><p>…but it does not affect whether it is maximized or minimized.</p></blockquote></div><div class="quotebox"><cite>Аскет пишет:</cite><blockquote><p>Время запуска &quot;тяжёлого приложения&quot; на отдельно взятой машине почти всегда одинаково.</p></blockquote></div><p>…и зависит от ряда величин в данный конкретный момент времени — загрузки процессора, количества свободной физической памяти (свопирование).</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-02T11:58:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41147#p41147</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Запуск 3 программ]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41146#p41146" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>А может, делать в цикле WshShell.AppActivate</p></blockquote></div><p>Я как раз об этом сейчас и подумал!<br />Ваш пост подкрепил мои &quot;опасения&quot;.<br /></p><div class="codebox"><pre><code>set wshell=CreateObject (&quot;Wscript.shell&quot;)
do UNTIL wshell.Appactivate (&quot;PROMT&quot;) = True
 wsh.sleep 1000
loop
....
&#039;Запуск следующего приложения
...</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Аскет]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25748</uri>
			</author>
			<updated>2010-11-02T11:23:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41146#p41146</id>
		</entry>
</feed>
