<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=16190</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16190&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Манипуляции с состоянием окна внутри программы по ClassNN».]]></description>
		<lastBuildDate>Tue, 23 Mar 2021 12:08:24 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146892#p146892</link>
			<description><![CDATA[<p>Буду знать). <br /></p><div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>А вы сделайте свое переключение по Tab. Это проще будет.</p></blockquote></div><p>Вариант) Благодарю!</p>]]></description>
			<author><![CDATA[null@example.com (sim8783)]]></author>
			<pubDate>Tue, 23 Mar 2021 12:08:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146892#p146892</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146891#p146891</link>
			<description><![CDATA[<p>У программ на Delphi извращенный подход к окнам.<br /></p><div class="quotebox"><cite>sim8783 пишет:</cite><blockquote><p>пропадает возможность переключения между окнами по клавише Tab</p></blockquote></div><p>А вы сделайте свое переключение по Tab. Это проще будет.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Tue, 23 Mar 2021 10:19:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146891#p146891</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146854#p146854</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Перебирайте все TNewCaption, которое больше остальных, кликайте в правый верхний угол, или где там кнопка свернуть. Насчёт разворчивания, не знаю, надо больше данных. Для наглядности я бы использовал ahkspy и window detective, то что пишет в ини файл, очень странный выбор.</p></blockquote></div><p>Чем их перебирать? В этом то и суть, что не знаю как отправить команду сворачивание по ClassNN. ahkspy не дает какой то уникальной информации, у всех окон отличается TNewCaption1, и дальше TNewCaption2.. по порядку как они были свернуты.</p>]]></description>
			<author><![CDATA[null@example.com (sim8783)]]></author>
			<pubDate>Mon, 22 Mar 2021 07:27:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146854#p146854</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146849#p146849</link>
			<description><![CDATA[<p>Перебирайте все TNewCaption, которое больше остальных, кликайте в правый верхний угол, или где там кнопка свернуть. Насчёт разворчивания, не знаю, надо больше данных. Для наглядности я бы использовал ahkspy и window detective, то что пишет в ини файл, очень странный выбор.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sun, 21 Mar 2021 20:35:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146849#p146849</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146845#p146845</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (sim8783)]]></author>
			<pubDate>Sun, 21 Mar 2021 18:55:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146845#p146845</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146841#p146841</link>
			<description><![CDATA[<p>Видимо, в этом режиме не существует дополнительных окон. Просто их содержимое внедряется в основное окно под видом вкладок (вроде ещё говорят &quot;док-панель&quot;).<br />Ну, как вариант, можно средствами AutoHotkey кликать мышкой по координатам для переключения между этими &quot;вкладками&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sun, 21 Mar 2021 16:51:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146841#p146841</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146837#p146837</link>
			<description><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>У каждого окна и у каждого элемента управления в каждом окне существует уникальный идентификатор. Зовётся HWND.</p></blockquote></div><p>Работает только с функцией &quot;Detached&quot; у окна. Т.к. когда оно обособлено, у него появляются особые характеристики. Но при этой функции пропадает возможность переключения между окнами по клавише Tab, что крайне важная для меня функция. <br />Видимо задача не решаема.</p>]]></description>
			<author><![CDATA[null@example.com (sim8783)]]></author>
			<pubDate>Sun, 21 Mar 2021 15:03:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146837#p146837</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146835#p146835</link>
			<description><![CDATA[<p>У каждого окна и у каждого элемента управления в каждом окне существует уникальный идентификатор. Зовётся HWND.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sun, 21 Mar 2021 11:38:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146835#p146835</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146832#p146832</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sun, 21 Mar 2021 11:12:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146832#p146832</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146831#p146831</link>
			<description><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Тяжёлый случай. В такой ситуации наверно только че6рез Acc различать, я в этом не силён.</p></blockquote></div><p>Жаль. Я бы не сказал даже, что прямо необходимо отличать окна, важно просто мочь отправлять команду сворачивания\разворачивания в активное окно, но только активное в программе, а не в целом, что бы не саму FL Studio сворачивало, а окно внутри.</p>]]></description>
			<author><![CDATA[null@example.com (sim8783)]]></author>
			<pubDate>Sun, 21 Mar 2021 10:54:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146831#p146831</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146828#p146828</link>
			<description><![CDATA[<p>Тяжёлый случай. В такой ситуации наверно только че6рез Acc различать, я в этом не силён.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sun, 21 Mar 2021 10:26:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146828#p146828</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146824#p146824</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (sim8783)]]></author>
			<pubDate>Sun, 21 Mar 2021 08:42:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146824#p146824</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146818#p146818</link>
			<description><![CDATA[<p>Ну должно же хоть что-то отличаться, покажите файл.ini с инфой двух и более окон в которых нужно найти отличия.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sat, 20 Mar 2021 21:37:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146818#p146818</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146817#p146817</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (sim8783)]]></author>
			<pubDate>Sat, 20 Mar 2021 20:43:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146817#p146817</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Манипуляции с состоянием окна внутри программы по ClassNN]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=146815#p146815</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Sat, 20 Mar 2021 17:57:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=146815#p146815</guid>
		</item>
	</channel>
</rss>
