<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16190&amp;type=atom" />
	<updated>2021-03-23T12:08:24Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16190</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146892#p146892" />
			<content type="html"><![CDATA[<p>Буду знать). <br /></p><div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>А вы сделайте свое переключение по Tab. Это проще будет.</p></blockquote></div><p>Вариант) Благодарю!</p>]]></content>
			<author>
				<name><![CDATA[sim8783]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41484</uri>
			</author>
			<updated>2021-03-23T12:08:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146892#p146892</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146891#p146891" />
			<content type="html"><![CDATA[<p>У программ на Delphi извращенный подход к окнам.<br /></p><div class="quotebox"><cite>sim8783 пишет:</cite><blockquote><p>пропадает возможность переключения между окнами по клавише Tab</p></blockquote></div><p>А вы сделайте свое переключение по Tab. Это проще будет.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2021-03-23T10:19:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146891#p146891</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146854#p146854" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Перебирайте все TNewCaption, которое больше остальных, кликайте в правый верхний угол, или где там кнопка свернуть. Насчёт разворчивания, не знаю, надо больше данных. Для наглядности я бы использовал ahkspy и window detective, то что пишет в ини файл, очень странный выбор.</p></blockquote></div><p>Чем их перебирать? В этом то и суть, что не знаю как отправить команду сворачивание по ClassNN. ahkspy не дает какой то уникальной информации, у всех окон отличается TNewCaption1, и дальше TNewCaption2.. по порядку как они были свернуты.</p>]]></content>
			<author>
				<name><![CDATA[sim8783]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41484</uri>
			</author>
			<updated>2021-03-22T07:27:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146854#p146854</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146849#p146849" />
			<content type="html"><![CDATA[<p>Перебирайте все TNewCaption, которое больше остальных, кликайте в правый верхний угол, или где там кнопка свернуть. Насчёт разворчивания, не знаю, надо больше данных. Для наглядности я бы использовал ahkspy и window detective, то что пишет в ини файл, очень странный выбор.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2021-03-21T20:35:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146849#p146849</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146845#p146845" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Ну, как вариант, можно средствами AutoHotkey кликать мышкой по координатам для переключения между этими &quot;вкладками&quot;.</p></blockquote></div><p>Я бы сразу так сделал, но для кликов тоже нужны какие то определенные ориентиры, т.к. &quot;окна&quot; всегда в разных местах и разном маштабе, с разными названиями. Приходит на ум только imageSearch, либо брать заголовки каждого окна, вычислять у них начало, так как оно обычно одинаковое, но тут опять же снова эта задача, как брать заголовки, если окно никак не индентифицируется, снова через imageSearch только. Но хотелось бы универсального решения, что бы не подгонять под определенные окна. Вообщем это край, пока не на столько это необходимо, что бы идти на такой компромис.</p><p>Еще подумал о перехвате команды, которая посылается при клике на модификаторы окна, или той же кнопки &quot;Detached&quot;которая не имеет горячей клавиши. Можно ли таким образом провернуть, типа реверснуть через ollydbg например, и привезать посыл команды к AHK? Был бы презнателен ссылкам на подобные примеры, если есть у кого на памяти сейчас откликнулось.</p>]]></content>
			<author>
				<name><![CDATA[sim8783]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41484</uri>
			</author>
			<updated>2021-03-21T18:55:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146845#p146845</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146841#p146841" />
			<content type="html"><![CDATA[<p>Видимо, в этом режиме не существует дополнительных окон. Просто их содержимое внедряется в основное окно под видом вкладок (вроде ещё говорят &quot;док-панель&quot;).<br />Ну, как вариант, можно средствами AutoHotkey кликать мышкой по координатам для переключения между этими &quot;вкладками&quot;.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2021-03-21T16:51:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146841#p146841</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146837#p146837" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>У каждого окна и у каждого элемента управления в каждом окне существует уникальный идентификатор. Зовётся HWND.</p></blockquote></div><p>Работает только с функцией &quot;Detached&quot; у окна. Т.к. когда оно обособлено, у него появляются особые характеристики. Но при этой функции пропадает возможность переключения между окнами по клавише Tab, что крайне важная для меня функция. <br />Видимо задача не решаема.</p>]]></content>
			<author>
				<name><![CDATA[sim8783]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41484</uri>
			</author>
			<updated>2021-03-21T15:03:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146837#p146837</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146835#p146835" />
			<content type="html"><![CDATA[<p>У каждого окна и у каждого элемента управления в каждом окне существует уникальный идентификатор. Зовётся HWND.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2021-03-21T11:38:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146835#p146835</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146832#p146832" />
			<content type="html"><![CDATA[<p>А для того что бы отличить окно от любых других, нужно как-то найти отличие.<br />Можно конечно проверять является ли окно из списка разрешённых:</p><div class="codebox"><pre><code>T := &quot;NextGen.flp - FL Studio 20&quot;

F5::
WinGetTitle, Title, A
If (Title = T)
 WinMinimize, A
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-03-21T11:12:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146832#p146832</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146831#p146831" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Тяжёлый случай. В такой ситуации наверно только че6рез Acc различать, я в этом не силён.</p></blockquote></div><p>Жаль. Я бы не сказал даже, что прямо необходимо отличать окна, важно просто мочь отправлять команду сворачивания\разворачивания в активное окно, но только активное в программе, а не в целом, что бы не саму FL Studio сворачивало, а окно внутри.</p>]]></content>
			<author>
				<name><![CDATA[sim8783]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41484</uri>
			</author>
			<updated>2021-03-21T10:54:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146831#p146831</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146828#p146828" />
			<content type="html"><![CDATA[<p>Тяжёлый случай. В такой ситуации наверно только че6рез Acc различать, я в этом не силён.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-03-21T10:26:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146828#p146828</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146824#p146824" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Ну должно же хоть что-то отличаться, покажите файл.ini с инфой двух и более окон в которых нужно найти отличия.</p></blockquote></div><p>Вот:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>[01:35:52 21.03.2021]<br />Title=NextGen.flp - FL Studio 20<br />PID=6984<br />Class=TFruityLoopsMainForm<br />Exe=FL64.exe<br />Position=62, 0, 1378, 900<br />WinProcessPath=S:\ProgramFast\FL Studio 20\FL64.exe<br />CommandLine=&quot;S:\ProgramFast\FL Studio 20\FL64.exe&quot; <br />[01:35:59 21.03.2021]<br />Title=NextGen.flp - FL Studio 20<br />PID=6984<br />Class=TFruityLoopsMainForm<br />Exe=FL64.exe<br />Position=62, 0, 1378, 900<br />WinProcessPath=S:\ProgramFast\FL Studio 20\FL64.exe<br />CommandLine=&quot;S:\ProgramFast\FL Studio 20\FL64.exe&quot; <br />[01:36:07 21.03.2021]<br />Title=NextGen.flp - FL Studio 20<br />PID=6984<br />Class=TFruityLoopsMainForm<br />Exe=FL64.exe<br />Position=62, 0, 1378, 900<br />WinProcessPath=S:\ProgramFast\FL Studio 20\FL64.exe<br />CommandLine=&quot;S:\ProgramFast\FL Studio 20\FL64.exe&quot;</p></div></div><p>У окон отличается classNN.</p>]]></content>
			<author>
				<name><![CDATA[sim8783]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41484</uri>
			</author>
			<updated>2021-03-21T08:42:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146824#p146824</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146818#p146818" />
			<content type="html"><![CDATA[<p>Ну должно же хоть что-то отличаться, покажите файл.ini с инфой двух и более окон в которых нужно найти отличия.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-03-20T21:37:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146818#p146818</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146817#p146817" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Почему бы не ориентироваться на название окна?</p></blockquote></div><p>Названия окон менются в зависимости от названия содержания.<br /></p><div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>С помощью этого кода, можно получить различную инфу об окне.</p></blockquote></div><p>Ничего нового не показало. Тоже показывает winspy.</p><p>У всех внутренних окон classNN:TNewCaption1. Если окно активное, у неактивных classNN:TNewCaption2.</p>]]></content>
			<author>
				<name><![CDATA[sim8783]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41484</uri>
			</author>
			<updated>2021-03-20T20:43:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146817#p146817</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=146815#p146815" />
			<content type="html"><![CDATA[<p>С помощью этого кода, можно получить различную инфу об окне.<br /></p><div class="codebox"><pre><code>Set := A_Desktop &quot;\Info.ini&quot;
D := &quot;:&quot;
D1 := &quot;.&quot;


F2::
Time := A_Hour D A_Min D A_Sec &quot; &quot; A_DD D1 A_MM D1 A_YYYY
ID := WinExist(&quot;A&quot;)
WinGetPos, X, Y, W, H, ahk_id %id%
WinGetTitle, Title, ahk_id %id%
WinGet, PID, PID, ahk_id %id%
WinGetClass, Class, ahk_id %id%
WinGet, Exe, ProcessName, ahk_id %id%
GCL := Proc(PID)

WinGet, WinProcessPath, ProcessPath, ahk_id %id%
Loop, %WinProcessPath%
 WinProcessPath = %A_LoopFileLongPath%

IniWrite, % Title, % Set, % Time, Title
IniWrite, % PID, % Set, % Time, PID
IniWrite, % Class, % Set, % Time, Class
IniWrite, % Exe, % Set, % Time, Exe
IniWrite, % X &quot;, &quot; Y &quot;, &quot; W &quot;, &quot; H , % Set, % Time, Position
IniWrite, % WinProcessPath , % Set, % Time, WinProcessPath
IniWrite, % GCL, % Set, % Time, CommandLine
Return



Proc(pid){
 wmi := ComObjGet(&quot;winmgmts:&quot;)
 queryEnum := wmi.ExecQuery(&quot;&quot; . &quot;Select * from Win32_Process where ProcessId=&quot; . PID)._NewEnum()
 If queryEnum[proc]
  line := proc.CommandLine
 Else
  line = Process not found!
 Return line
}</code></pre></div><p>Запускаем скрипт, открываем нужное окно, жмём F2 в окне. Повторить во всех нужных окнах с интервалом от 1 секунды.<br />На раб. столе появится *.ini файл с инфой об окнах.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-03-20T17:57:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=146815#p146815</id>
		</entry>
</feed>
