<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: WinGet List порядок]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10011&amp;type=atom" />
	<updated>2014-09-30T20:09:52Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10011</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: WinGet List порядок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86913#p86913" />
			<content type="html"><![CDATA[<p>Немного поспешил, точнее будет так:<br /></p><div class="codebox"><pre><code>WinGet, PID, PID, A

hProc := DllCall(&quot;OpenProcess&quot;, UInt, PROCESS_QUERY_INFORMATION := 0x400, UInt, 0, UInt, PID, Ptr)
VarSetCapacity(CreationTime, 8)
DllCall(&quot;GetProcessTimes&quot;, Ptr, hProc, Ptr, &amp;CreationTime, PtrP, ExitTime, PtrP, KernelTime, PtrP, UserTime)
DllCall(&quot;CloseHandle&quot;, Ptr, hProc)

VarSetCapacity(SystemTime, 16)
DllCall(&quot;FileTimeToSystemTime&quot;, Ptr, &amp;CreationTime, Ptr, &amp;SystemTime)

VarSetCapacity(LocalTime, 16)
DllCall(&quot;SystemTimeToTzSpecificLocalTime&quot;, Ptr, 0, Ptr, &amp;SystemTime, Ptr, &amp;LocalTime)

Year := NumGet(LocalTime, &quot;UShort&quot;)
Month := SubStr(&quot;0&quot; . NumGet(&amp;LocalTime + 2, &quot;UShort&quot;), -1)
Day := SubStr(&quot;0&quot; . NumGet(&amp;LocalTime + 6, &quot;UShort&quot;), -1)
Hour := SubStr(&quot;0&quot; . NumGet(&amp;LocalTime + 8, &quot;UShort&quot;), -1)
Min := SubStr(&quot;0&quot; . NumGet(&amp;LocalTime + 10, &quot;UShort&quot;), -1)
Sec := SubStr(&quot;0&quot; . NumGet(&amp;LocalTime + 12, &quot;UShort&quot;), -1)

MsgBox, % Year . Month . Day . Hour . Min . Sec</code></pre></div><p>Впрочем, чтобы просто выяснить, какой из процессов раньше запущен, достаточно сравнить их значение <em>CreationTime</em>. Однако, этот метод не подойдёт для окон проводника, т. к. все они относятся к одному процессу explorer.exe.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-09-30T20:09:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86913#p86913</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: WinGet List порядок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86910#p86910" />
			<content type="html"><![CDATA[<p>Можно так:<br /></p><div class="codebox"><pre><code>PROCESS_QUERY_INFORMATION := 0x400

WinGet, PID, PID, A

hProc := DllCall(&quot;OpenProcess&quot;, UInt, PROCESS_QUERY_INFORMATION, UInt, 0, UInt, PID, Ptr)
DllCall(&quot;GetProcessTimes&quot;, Ptr, hProc, PtrP, CreationTime, PtrP, ExitTime, PtrP, KernelTime, PtrP, UserTime)
DllCall(&quot;CloseHandle&quot;, Ptr, hProc)

VarSetCapacity(SystemTime, 16)
DllCall(&quot;FileTimeToSystemTime&quot;, Ptr, &amp;CreationTime, Ptr, &amp;SystemTime)

Hour := NumGet(&amp;SystemTime + 8, &quot;UShort&quot;)
Min := NumGet(&amp;SystemTime + 10, &quot;UShort&quot;)
Sec := NumGet(&amp;SystemTime + 12, &quot;UShort&quot;)
MSec := NumGet(&amp;SystemTime + 14, &quot;UShort&quot;)

MsgBox, % Hour . Min . Sec . MSec</code></pre></div><p><strong>Urusal</strong>, свои комплексы вымещайте на кошках.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-09-30T15:45:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86910#p86910</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: WinGet List порядок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86908#p86908" />
			<content type="html"><![CDATA[<p>Скорее всего можно, но очень сложно, и как именно — не знаю.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-09-30T15:17:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86908#p86908</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: WinGet List порядок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86907#p86907" />
			<content type="html"><![CDATA[<p>Ах да, их же теперь можно перетаскивать...<br /></p><div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>получить время запуска процесса</p></blockquote></div><p>А можно это делать как-то без COM объектов?</p>]]></content>
			<author>
				<name><![CDATA[P@S@f]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32581</uri>
			</author>
			<updated>2014-09-30T15:06:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86907#p86907</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: WinGet List порядок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86906#p86906" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>P@S@f пишет:</cite><blockquote><p>Хочу узнать, возможно ли получить список окон в порядке, в котором они были открыты (в котором они расположены на панели задач)?</p></blockquote></div><p>Могу заметить, что на панели задач список окон может не соответствовать порядку, в котором они были открыты.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-09-30T14:53:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86906#p86906</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: WinGet List порядок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86905#p86905" />
			<content type="html"><![CDATA[<p>Можно получить время запуска процесса, это поможет, если окна будут принадлежать к разным процессам.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-09-30T13:15:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86905#p86905</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: WinGet List порядок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86904#p86904" />
			<content type="html"><![CDATA[<p>Хочу узнать, возможно ли получить список окон в порядке, в котором они были открыты (в котором они расположены на панели задач)?</p><p>Пробовал через панель задач, но в Win 7 что-то поменялось в этом плане, поэтому старые скрипты не работают.</p><p>Например:<br /></p><div class="codebox"><pre><code>TaskBar_GetSwbarId() {
    DetectHiddenWindows, On
    WinGet, ControlList, ControlList, ahk_class Shell_TrayWnd
    RegExMatch(ControlList, &quot;(?&lt;=ToolbarWindow32)\d+(?!.*ToolbarWindow32)&quot;, nTB)
    Loop, %nTB%
    {
        ControlGet, hWnd, hWnd,, ToolbarWindow32%A_Index%, ahk_class Shell_TrayWnd
        hParent := DllCall( &quot;GetParent&quot;, Ptr, hWnd )
        WinGetClass, sClass, ahk_id %hParent%
        If (sClass &lt;&gt; &quot;MSTaskSwWClass&quot;)
            Continue
        ControlGet, hwndTB, hwnd, , ToolbarWindow32%A_Index%, ahk_class Shell_TrayWnd
        Break
    }
 Return  hwndTB
}</code></pre></div><p>MSTaskSwWClass в Windows 7 больше не является родителем ToolbarWindow32. Если напрямую обращаться к ToolbarWindow321 - получится доступ к области уведомлений (tray), а не к панели задач (taskbar).<br />При отсылании TB_BUTTONCOUNT к ToolbarWindow322, как и к ReBarWindow321, возвращается 0.</p><p>Может возможен вариант через PID? Правда я не знаком со схемой их генерации. Может ли произойти так что меньший PID освободился и новый процесс может его занять? Или они всегда идут инкрементом до 65535?</p>]]></content>
			<author>
				<name><![CDATA[P@S@f]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32581</uri>
			</author>
			<updated>2014-09-30T12:59:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86904#p86904</id>
		</entry>
</feed>
