<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6372&amp;type=atom" />
	<updated>2021-04-14T10:21:17Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6372</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147316#p147316" />
			<content type="html"><![CDATA[<p><strong>creature.ws</strong><br />Почему-то у меня этот код всегда находит только одни процесс - скрипта АНК. А я так понимаю, что он должен перебрать все активные процессы и выбрать из них тот, который If=<br />Подскажите, пожалуйста, как его подправить, чтобы можно было находить ВСЕ процессы с определенного диска и закрывать их.</p>]]></content>
			<author>
				<name><![CDATA[alex22]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41647</uri>
			</author>
			<updated>2021-04-14T10:21:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147316#p147316</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60193#p60193" />
			<content type="html"><![CDATA[<p>Я создам новую тему как и полагается, прошу прощение за флуд:)</p>]]></content>
			<author>
				<name><![CDATA[ComSyntax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27985</uri>
			</author>
			<updated>2012-05-11T14:24:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60193#p60193</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60145#p60145" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p><span style="color: #008800"><strong>ComSyntax</strong>, как твой вопрос связан с названием данной темы? Тебе <a href="http://forum.script-coding.com/rules.html#3.11.">тонкий</a> намёк.</span></p></blockquote></div><p>Как причина со следствием...</p>]]></content>
			<author>
				<name><![CDATA[ComSyntax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27985</uri>
			</author>
			<updated>2012-05-11T00:50:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60145#p60145</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60140#p60140" />
			<content type="html"><![CDATA[<p><span style="color: #008800"><strong>ComSyntax</strong>, как твой вопрос связан с названием данной темы? Тебе <a href="http://forum.script-coding.com/rules.html#3.11.">тонкий</a> намёк.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-05-10T21:45:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60140#p60140</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60132#p60132" />
			<content type="html"><![CDATA[<p><span style="color: #008800"><strong>ComSyntax</strong>, прежде чем задать вопрос, нужно ознакомиться с <a href="http://forum.script-coding.com/rules.html">Правилами</a> форума, и ещё вот с <a href="http://forum.script-coding.com/viewtopic.php?id=6148">этой</a> статьёй.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-05-10T18:33:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60132#p60132</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60130#p60130" />
			<content type="html"><![CDATA[<p>Помогите, пожалуйста:)<br />Каким образам изменить ниже приведенный код так, чтобы скомпилированная программа на AutoHotkey действовала не по всей области Фотошопа, а только в определенной ее области? <br />А именно в области ClassNN:PSViewC33.</p><p>&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;( Now Under Mouse Cursor )&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br />ClassNN:	PSViewC33<br />Text:	<br />Color:<br />&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;</p><p> </p><div class="codebox"><pre><code>#SingleInstance ignore
Run, Photoshop.exe, , Max UseErrorLevel
if ErrorLevel = ERROR
    {
    MsgBox При запуске программы Photoshop произошла ошибка. Пожалуйста, попробуйте снова.
    ExitApp
    }
WinWaitActive ahk_class Photoshop
SetTimer Check, 2000
Return

#IfWinActive ahk_class Photoshop
WheelDown::Send, {)} 
WheelUp::Send, {(} 
MButton &amp; WheelDown:: Send, {f}
MButton &amp; WheelUp::Send, {n}

Check:
  IfWinNotExist ahk_class Photoshop
    {  
    ExitApp
    } 
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[ComSyntax]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27985</uri>
			</author>
			<updated>2012-05-10T18:14:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60130#p60130</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=60126#p60126" />
			<content type="html"><![CDATA[<p>Выражаю огромную благодарность creature.ws за это замечательное компактное решение!</p>]]></content>
			<author>
				<name><![CDATA[BalRoG]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27697</uri>
			</author>
			<updated>2012-05-10T16:51:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=60126#p60126</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52973#p52973" />
			<content type="html"><![CDATA[<p><strong>creature.ws</strong> — спасибо тебе ещё раз; я час смотрел в тот пример, ничего сделать с ним не мог. Это работает; именно то, что нужно. <br /><strong>Александр_</strong>, спасибо за участие.</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2011-10-27T22:10:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52973#p52973</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52971#p52971" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
Process, Exist
pid := ErrorLevel

for process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process&quot;) ; цикл  перебора всех запущенных процессов
  If (process.ProcessId = pid)           ; сравнение pid текущего процесса из списка процессов с неким значением
    cmdline := process.CommandLine       ; сохранение commandline в переменную
    
Run %cmdline%                            ; использование сохранённой строки</code></pre></div><p>в данном случае используется pid процесса выполняющего текущий скрипт</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2011-10-27T21:30:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52971#p52971</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52969#p52969" />
			<content type="html"><![CDATA[<p><strong>Александр_</strong>, не системы — процесса, запущенного с параметрами (запустил не я, поэтому параметры заранее не известны). Нет, я поторопился — мне не достаточно рестарта, нужно получить именно строку параметров процесса с конкретным PID.</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2011-10-27T19:11:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52969#p52969</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52966#p52966" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>mih пишет:</cite><blockquote><p>Может быть, встречалось что-нибудь консольное для рестарта? — я ради него спрашивал.</p></blockquote></div><p>shutdown -r?</p>]]></content>
			<author>
				<name><![CDATA[Александр_]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24888</uri>
			</author>
			<updated>2011-10-27T18:58:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52966#p52966</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52965#p52965" />
			<content type="html"><![CDATA[<p><strong>Александр_</strong>, в светлой рамочке — понятно, а дальше я, конечно, не осилю, мягко говоря.<br />Может быть, встречалось что-нибудь консольное для рестарта? — я ради него спрашивал.<br />______________<br />доб.: <strong>creature.ws</strong>, спасибо! Как бы это ещё для рестарта приспособить, надо подумать.</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2011-10-27T18:51:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52965#p52965</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52964#p52964" />
			<content type="html"><![CDATA[<p><strong>mih</strong>, еще пример в справке:<br /></p><div class="quotebox"><blockquote><p>; Example #5: Retrieves a list of running processes via COM.</p><p>Gui, Add, ListView, x2 y0 w400 h500, Process Name|Command Line<br />for process in ComObjGet(&quot;winmgmts:&quot;).ExecQuery(&quot;Select * from Win32_Process&quot;)<br />&nbsp; &nbsp; LV_Add(&quot;&quot;, process.Name, process.CommandLine)<br />Gui, Show,, Process List</p><p>; Win32_Process: <a href="http://msdn.microsoft.com/en-us/library/aa394372.aspx">http://msdn.microsoft.com/en-us/library/aa394372.aspx</a></p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2011-10-27T18:49:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52964#p52964</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52961#p52961" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>mih пишет:</cite><blockquote><p>Программы ProcessExplorer, Process Hacker позволяют видеть полную командную строку с <strong>аргументами</strong>, запустившую процесс. Как её получить в AHK ?</p></blockquote></div><p>Там всё не очень просто. Если по пунктам:<br />1) нужно открыть целевой процесс с правами на чтение и получение информации(функция OpenProcess).<br />2) Затем нужно нужно получить информацию о процессе функцией <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms684280%28v=vs.85%29.aspx">NtQueryInformationProcess</a>(второй аргумент ProcessBasicInformation).<br />3) В пункте 2 мы получили структуру PROCESS_BASIC_INFORMATION, вторым параметром которой является указатель на другую&nbsp; структуру- PEB. Она-то нас и интересует.<br />4) Эта замечательная структура описана в MSDN не слишком подробно(<a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa813706%28v=vs.85%29.aspx">link</a>), но нам хватит(<a href="http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/Process/PEB.html">в интернете можно найти и полное описание</a>). Эта структура находится в целевом процессе(См. <a href="http://msdn.microsoft.com/en-us/library/ms680553%28VS.85%29.aspx">ReadProcessMemory</a>). Там нас интересует ссылка на структуру RTL_USER_PROCESS_PARAMETERS.<br />5) Описание RTL_USER_PROCESS_PARAMETERS см. <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa813741%28v=vs.85%29.aspx">тут</a> или <a href="http://undocumented.ntinternals.net/UserMode/Structures/RTL_USER_PROCESS_PARAMETERS.html">тут(полное)</a>. И там мы обнаруживаем параметр CommandLine, который и содержит командную строку, переданную процессу при запуске.<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=24888</uri>
			</author>
			<updated>2011-10-27T18:28:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52961#p52961</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Как определить аргументы командной строки, запустившей процесс?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52960#p52960" />
			<content type="html"><![CDATA[<p>Программы ProcessExplorer, Process Hacker позволяют видеть полную командную строку с <strong>аргументами</strong>, запустившую процесс. Как её получить в AHK ?</p>]]></content>
			<author>
				<name><![CDATA[mih]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24883</uri>
			</author>
			<updated>2011-10-27T17:26:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52960#p52960</id>
		</entry>
</feed>
