<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=6558</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6558&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Завершить скрипт, содержащий определённый параметр ком. строки».]]></description>
		<lastBuildDate>Fri, 16 Apr 2021 16:19:20 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147376#p147376</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Знаками процента можно обрамлять только одну переменную. Но ещё можно так записать:<br /></p><div class="codebox"><pre><code>For Process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process WHERE ExecutablePath LIKE &#039;%E:\\%&#039;&quot;)
   WinClose, % &quot;ahk_pid&quot; . Process.ProcessId</code></pre></div></blockquote></div><p>Попробовал. Ошибку не выдаёт, но и программы не закрывает.</p>]]></description>
			<author><![CDATA[null@example.com (alex22)]]></author>
			<pubDate>Fri, 16 Apr 2021 16:19:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147376#p147376</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147355#p147355</link>
			<description><![CDATA[<p>Знаками процента можно обрамлять только одну переменную. Но ещё можно так записать:<br /></p><div class="codebox"><pre><code>For Process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process WHERE ExecutablePath LIKE &#039;%E:\\%&#039;&quot;)
   WinClose, % &quot;ahk_pid&quot; . Process.ProcessId</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 15 Apr 2021 22:01:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147355#p147355</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147353#p147353</link>
			<description><![CDATA[<p>По-другому не умею. Пробовал<br /></p><div class="codebox"><pre><code>For Process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process WHERE ExecutablePath LIKE &#039;%E:\\%&#039;&quot;)
   WinClose, ahk_pid %Process.ProcessId%</code></pre></div><p>Получил ошибку.</p>]]></description>
			<author><![CDATA[null@example.com (alex22)]]></author>
			<pubDate>Thu, 15 Apr 2021 18:56:06 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147353#p147353</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147338#p147338</link>
			<description><![CDATA[<p>Так вы записываете каждый раз в одну переменную по очереди все процессы, а передаёте только самый последний записанный.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 14 Apr 2021 19:31:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147338#p147338</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147335#p147335</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А зачем вы все процессы каждый раз заново в одну переменную записываете? И зачем там (1) ?</p></blockquote></div><p>Зачем (1) понятия не имею, так в образце было. Процессы в переменную пишу чтобы в что в WinClose передать, как по другому?</p>]]></description>
			<author><![CDATA[null@example.com (alex22)]]></author>
			<pubDate>Wed, 14 Apr 2021 16:53:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147335#p147335</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147332#p147332</link>
			<description><![CDATA[<p>А зачем вы все процессы каждый раз заново в одну переменную записываете? И зачем там (1) ?<br />Но в любом случае придётся ждать, пока очередное окно закроется, если не примерить как-то многопоточность, ищите на форуме.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 14 Apr 2021 15:19:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147332#p147332</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147327#p147327</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Спасибо, теперь заработало, хотя и не так, как хотелось бы: если Process.Terminate завершает ВСЕ найденные в цикле for подходящие процессы, то в переменную записывается PID только верхнего процесса, поэтому пока не будет закрыт текущий процесс, следующий команду на закрытие не получит. Даже на небольших прогах, которые запустил для эксперимента, долго вышло, а в реальной работе предвижу секунд 20-30. Или все же придется убивать особенно долго завершающиеся процессы, чего не хотелось бы.<br /></p><div class="codebox"><pre><code>DetectHiddenWindows, on
Loop
{
NN = 0
For Process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process WHERE ExecutablePath LIKE &#039;%E:\\%&#039;&quot;)
   NN := Process.ProcessId(1)
if NN = 0
   break
WinClose, ahk_pid %NN%
;WinWaitClose,,, 5
;if ErrorLevel
;WinKill, ahk_pid %NN%
;Process, Close,%NN%
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alex22)]]></author>
			<pubDate>Wed, 14 Apr 2021 12:59:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147327#p147327</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147324#p147324</link>
			<description><![CDATA[<p>Для закрытия окна пользуюсь этой функцией:<br /></p><div class="codebox"><pre><code>CorrectCloseProcess(WinTitle)
{
  loop,50
  {
    a++
    t:=a_tickcount
    SendMessage,WM_QUERYENDSESSION:=0x11,0,1,,% WinTitle
    d:=a_tickcount-t
    if (d&gt;100)
      return -1
    b:=ErrorLevel
    SendMessage,WM_CLOSE:=0x10,,,,% WinTitle
    if (b=&quot;FAIL&quot;)
      return a
    sleep,10
  }
}</code></pre></div><p>Возможно есть варианты лучше.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 14 Apr 2021 12:27:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147324#p147324</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147321#p147321</link>
			<description><![CDATA[<p>Обратный слеш нужно экранировать (удваивать).</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 14 Apr 2021 10:48:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147321#p147321</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147319#p147319</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />И как им воспользоваться?<br />Так не работает <br /></p><div class="codebox"><pre><code>For Process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process WHERE ExecutablePath LIKE &#039;%E:\%&#039;&quot;)
   NN := Process.ProcessId</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alex22)]]></author>
			<pubDate>Wed, 14 Apr 2021 10:30:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147319#p147319</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147317#p147317</link>
			<description><![CDATA[<p>PID&nbsp; — свойство ProcessId.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 14 Apr 2021 10:22:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147317#p147317</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=147315#p147315</link>
			<description><![CDATA[<p>Апну тему, потому что нужно почти то же самое - закрывать приложения, запущенные со съемного диска.<br /></p><div class="quotebox"><cite>Александр_ пишет:</cite><blockquote><p>Только перебором всех процессов. Если нужен максимально короткий код, то через WMI:<br /></p><div class="codebox"><pre><code>For Process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process WHERE CommandLine LIKE &#039;%calc%&#039;&quot;)
   Process.Terminate(1)</code></pre></div><p>Убьёт все процессы, содержащие в командной строке(включая и имя файла) подстроку &quot;calc&quot;.</p></blockquote></div><p>Код отличный, но нет ли возможности вместо terminate попытаться сначала закрыть окно, (пробовал заменить на CloseMainWindow - не работает). Или как-то добыть из цикла PID процессов для закрытия через WinClose.</p>]]></description>
			<author><![CDATA[null@example.com (alex22)]]></author>
			<pubDate>Wed, 14 Apr 2021 10:14:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=147315#p147315</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=54716#p54716</link>
			<description><![CDATA[<p>Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (creature.ws)]]></author>
			<pubDate>Sat, 17 Dec 2011 14:04:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=54716#p54716</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=54715#p54715</link>
			<description><![CDATA[<p><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa394552(v=VS.85).aspx">WMI and SQL</a> и связанные темы.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sat, 17 Dec 2011 14:02:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=54715#p54715</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Завершить скрипт, содержащий определённый параметр ком. строки]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=54706#p54706</link>
			<description><![CDATA[<p>Позвольте околопредметный вопрос <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Есть ли источник где можно ознакомится с синтаксисом WQL? Желательно с примерами построения запросов и описанием доступной функциональности.</p>]]></description>
			<author><![CDATA[null@example.com (creature.ws)]]></author>
			<pubDate>Sat, 17 Dec 2011 10:01:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=54706#p54706</guid>
		</item>
	</channel>
</rss>
