<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Warface: Переименовка окон UPDATE 26.08.17]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=12945</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12945&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Warface: Переименовка окон UPDATE 26.08.17».]]></description>
		<lastBuildDate>Sun, 27 Aug 2017 00:55:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118827#p118827</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong><br />Еще раз больше спасибо за помощь <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Все работает как часы <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (carenov)]]></author>
			<pubDate>Sun, 27 Aug 2017 00:55:40 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118827#p118827</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118825#p118825</link>
			<description><![CDATA[<div class="codebox"><pre><code>F11::
	Win := {}, Win.Free := {}, Win.Count := 0
	WinGet, List, List, ahk_exe %exe%
	Loop %List%
	{ 
		hwnd := List%A_Index%
		WinSetTitle, ahk_id %hwnd%, , Warface
    }
	Return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 26 Aug 2017 19:36:35 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118825#p118825</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118824#p118824</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong><br />UPDATE.</p><p>Не знаю в чем была проблема, но работает, и на отлично, следующий код:</p><div class="codebox"><pre><code>exe = game.exe  ;	можно полный путь

Win := {}, Win.Free := {}, Win.Count := 0

F10::
	WinGet, List, List, ahk_exe %exe%
    Loop %List%
	{ 
		hwnd := List%A_Index%
		If !DllCall(&quot;IsWindowVisible&quot;, &quot;Ptr&quot;, hwnd) || Win.Haskey(hwnd)
			Continue
		Min := Win.Free.MinIndex()
		i := (Min ? Min : Win.Count + 1)
		WinSetTitle, ahk_id %hwnd%, , WF%i%
		(Min &amp;&amp; Win.Free.Delete(Min))
		Win[hwnd] := i, Win.Count++
	}
	  Return

F11::
	WinGet, List, List, ahk_exe %exe%
	Loop %List%
	{ 
		hwnd := List%A_Index%
		WinSetTitle, ahk_id %hwnd%, , Warface
    }
	Return</code></pre></div><p>Огромное Вам спасибо за помощь, остался один маленький вопросик.<br />Как вы видите, в коде добавил возврат окон в стандартные, изначальные названия, на клавишу &quot;Ф11&quot;.<br />Оно работает отлично, но только один раз.<br />Грубо говоря, запускаю скрипт, жму ф10, окна переименовывались как нужно, далее жму ф11, окна вернулись в первоначальное состояние.<br />Но при повторном нажатии ф10 и ф11, ни один из скриптов не работает, помогает только перезапуск AHK. В чем может быть проблема?</p>]]></description>
			<author><![CDATA[null@example.com (carenov)]]></author>
			<pubDate>Sat, 26 Aug 2017 18:30:46 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118824#p118824</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118820#p118820</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong><br />Нарыл то что мне нужно на С++.<br />Проверил, полностью работает и окна переименовываются как надо<br />Вот основная, нужная мне, часть кода:<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"><div class="codebox"><pre><code>...
 
var
  Form8: TForm8;
  n: Integer;
 
...
 
function EnumWindowsProc(wHandle: HWND; Param: Pointer): BOOL; stdcall;
var
  Title, ClassName: array[0..255] of char;
begin
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  if IsWindowVisible(wHandle) and (Title = &#039;НазваниеОкна&#039;)
  then begin
       Inc(n);
       SetWindowText(wHandle, Format(&#039;Префикс %d&#039;, [n]));
       end;
  Result := True;
end;
 
procedure TForm8.Timer1Timer(Sender: TObject);
begin
  n := 0;
  EnumWindows(@EnumWindowsProc, 0);
end;
 
...</code></pre></div></div></div><p>В С++ вообще не шарю, понимаю, что языки разные, но может вы поймете что есть в этом коде, чего нет в Вашем на АХК и сможете добавить?<br />Буду очень признателен&nbsp; <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (carenov)]]></author>
			<pubDate>Sat, 26 Aug 2017 17:15:44 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118820#p118820</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118817#p118817</link>
			<description><![CDATA[<p>Очень плохое решение, я в этом участия принимать не буду. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Надо просто выяснить признаки по каким нужные окна отличаются от ненужных.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 26 Aug 2017 16:41:10 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118817#p118817</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118816#p118816</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong><br />Также всё выходит.<br />Я придумал выход, только не знаю как реализовать.<br />В переименовке нужно чтобы сами числа отнимались по одному.<br />Т.е., WF1, далее WF(формула (переименованное 3)-1=2, итог WF2), WF3, далее (формула (переименованное 5)-1=4, итог WF4), и так далее<br />По сути, каждое нечетное число остается, а от каждого четного отнимается один и результат записывается в &quot;WF(номер)&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (carenov)]]></author>
			<pubDate>Sat, 26 Aug 2017 16:09:28 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118816#p118816</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118803#p118803</link>
			<description><![CDATA[<p>Может те окна не скрыты а свернуты, пробуйте добавить заголовок окон. А вообще гаданиями не охота заниматся, тут дело за вами.<br /></p><div class="codebox"><pre><code>WinGet, List, List, Одинаковый заголовок ahk_exe %exe% </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Sat, 26 Aug 2017 08:57:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118803#p118803</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118794#p118794</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong><br />Проверил новый код - тоже самое.<br />Заметил одну интересную вещь, Вы правы, если оставить строку с WinMove, окна идут по порядку и появляются в столбике и все скрытые окна (которые закрываются при закрытии их основного окна)<br />Если же строку с WinMove убрать скрытых не видно.<br />Но факт в том, что так, что так, все осталось как и было, переименовка основных окон идет не по порядку.</p><p>Благодарю за Вашу активную помощь, но пока ничего не выходит <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (carenov)]]></author>
			<pubDate>Sat, 26 Aug 2017 00:02:30 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118794#p118794</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118793#p118793</link>
			<description><![CDATA[<p>Значит у процесса есть ещё одно окно, если оно скрытое, то я код поправил, должно работать.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Fri, 25 Aug 2017 23:14:49 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118793#p118793</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118790#p118790</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong><br />Ваш скрипт полностью рабочий.<br />Фишка в том, что окна игры УЖЕ запущены.<br />Я понимаю, можно убрать запуск с скрипта, но дело не в этом. <br />Если окна уже запущены, и запустить скрипт, они все равно каким-то магическим образом начинают переименовываться через один. (1,3,5,7,9 итд)<br />ПРИЧЕМ! В блокноте всё работает как надо, по порядку и так и так. А в игре и нескольких еще прогах (для теста чисто проверил) через один.<br />Даже и не знаю что делать уже...) прошу помощи</p>]]></description>
			<author><![CDATA[null@example.com (carenov)]]></author>
			<pubDate>Fri, 25 Aug 2017 22:56:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118790#p118790</guid>
		</item>
		<item>
			<title><![CDATA[Re: Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118784#p118784</link>
			<description><![CDATA[<div class="quotebox"><cite>carenov пишет:</cite><blockquote><p>по второй горячей клавише, сделать поиск и восстановить имя 8ому окну</p></blockquote></div><p>Со второй клавишей не пошло, потому всё на одной.<br /></p><div class="codebox"><pre><code>
exe = notepad.exe  ;	можно полный путь

Win := {}, Win.Free := {}, Win.Count := 0

Loop 10
	Run notepad
Sleep 333
WinGet, List, List, ahk_exe %exe% 
Loop %List%
	WinMove, % &quot;ahk_id&quot; List%A_Index%, , 1500, % A_Index * 40, 300, 30
Return

1:: 
	For k, v in Win 
		(k + 0 &amp;&amp; !WinExist(&quot;ahk_id&quot; k) 
		&amp;&amp; (Win.Free[Win.Delete(k)] := 1)
		&amp;&amp; Win.Count--)
	WinGet, List, List, ahk_exe %exe%
	Loop %List%
	{ 
		hwnd := List%A_Index%
		If !DllCall(&quot;IsWindowVisible&quot;, &quot;Ptr&quot;, hwnd) || Win.Haskey(hwnd)
			Continue
		Min := Win.Free.MinIndex()
		i := (Min ? Min : Win.Count + 1)
		WinSetTitle, ahk_id %hwnd%, , WF%i%
		(Min &amp;&amp; Win.Free.Delete(Min))
		Win[hwnd] := i, Win.Count++
	}
	Return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Fri, 25 Aug 2017 21:51:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118784#p118784</guid>
		</item>
		<item>
			<title><![CDATA[Warface: Переименовка окон UPDATE 26.08.17]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=118744#p118744</link>
			<description><![CDATA[<p>Доброго времени суток всем обитателям форума <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Стоит такая нетривиальная задача:<br />Есть N-ное количество окон с игрой, нужно по горячей клавише активировать переименование всех запущенных окон с игрой (К примеру &quot;WF1 - WF10&quot;).<br />Класс окон везде разный. Одинаковые названия самих окон и ехешник.<br />Желательно переименование должно быть по порядку (слева направо в панели задач)<br />И самое основное, допустим из 10 окон, 8ое закроется, при его перезапуске оно снова будет иметь стандартное название, и нужно по второй горячей клавише, сделать поиск и восстановить имя 8ому окну (если рассматривать мой пример &quot;WF8&quot;). Это второй хоткей.</p><p>Я сделал уже более 10 разных команд в своем скрипте, и на переименовании застопорился... <br />Прошу помощи, заранее огромное спасибо!</p><p><strong>UPDATE 25.08.17</strong></p><p>Получилось сделать первую часть, пока что так:<br /></p><div class="codebox"><pre><code>WinGet, WinMass, List, ahk_class КЛАСС программки ;(можно посмотреть программой Window Spy).
Loop %WinMass%
{
    WinList .= WinMass%A_Index%
    TmpID := WinMass%A_Index%
    WinGetTitle, WinTitle, ahk_id%TmpID%
    WinSetTitle, ahk_id%TmpID%,, Bot%A_Index%
    WinList .= &quot;(%A_Index%)&quot;| n
}</code></pre></div><p>Дело в том, что у игры все классы разные, а если ставить вместо класса ехешник, переименовка будет через 1 число (1,3,5,9,11 итд)<br />Не знаю почему, тестил на другом окне с одинаковым классом, все работает и переименовывает по порядку.</p>]]></description>
			<author><![CDATA[null@example.com (carenov)]]></author>
			<pubDate>Thu, 24 Aug 2017 17:13:30 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=118744#p118744</guid>
		</item>
	</channel>
</rss>
