<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=11101</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11101&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage».]]></description>
		<lastBuildDate>Sat, 28 Nov 2015 11:56:25 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99345#p99345</link>
			<description><![CDATA[<p>Если кому интересно, вот с помощью этого <a href="http://sourceforge.net/projects/npp-customize/">плагина</a> можно добавить свою кнопку в панель инструментов Notepad++ для переключения между областями по нажатию на кнопку.</p><p>1. Устанавливаем плагин Customize Toolbar<br />2. Включаем опцию Customize Toolbar --&gt; Custom Buttons --&gt; Перезапускаем Notepad++<br />3. Добавляем название команды запуска и горячую клавишу на запуск <a href="http://forum.script-coding.com/viewtopic.php?pid=99290#p99290">скрипта</a> в Меню --&gt; Запуск --&gt; Запуск... или по нажатию F5<br />4. Прописываем в файле такие параметры: D:\Program Files\Notepad++\plugins\Config\CustomizeToolbar.btn<br />Запуск,НазваниеКомандыЗапуска,,,ButtonIcon.bmp<br />Указываем кодировку для файла CustomizeToolbar.btn инструкция <a href="http://azjio.narod.ru/NppHelp/Plugins/CustomizeToolbar.html">здесь</a>.</p>]]></description>
			<author><![CDATA[null@example.com (avens)]]></author>
			<pubDate>Sat, 28 Nov 2015 11:56:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99345#p99345</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99291#p99291</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, переключает <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (avens)]]></author>
			<pubDate>Wed, 25 Nov 2015 16:05:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99291#p99291</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99290#p99290</link>
			<description><![CDATA[<p>Тоже иногда Notepad++ пользуюсь, у меня так вышло:<br /></p><div class="codebox"><pre><code>#IfWinActive ahk_class Notepad++
$F8:: WinExist(&quot;ahk_class Notepad++&quot;), SwitchAreaInNotepad()
#If

SwitchAreaInNotepad()
{
   WinGet, ControlList, ControlList
   if !(pref := WeOrNs(ControlList))
      Return
   
   pos := GetSpliterPos(ControlList, pref)
   ControlGetPos, X, Y, W, H, %pref%spliter1
   if (pos = &quot;D&quot;)
      x_click := X + 3, y_click := Y + H - 3
   if (pos = &quot;R&quot;)
      x_click := X + W - 3, y_click := Y + 3
   if (pos = &quot;U&quot;)
      x_click := X + 3, y_click := Y + 3
   if (pos = &quot;L&quot;)
      x_click := X + 3, y_click := Y + H - 3
   
   ControlClick, X%x_click% Y%y_click%
   ControlFocus, % GetCurrentScintilla(ControlList, pref)
}

WeOrNs(List)
{
   for k, spliter in [&quot;nsspliter1&quot;, &quot;wespliter1&quot;]  {
      if InStr(List, spliter)  {
         ControlGet, vis, Visible,, % spliter
         if vis
            Return SubStr(spliter, 1, 2)
      }
   }
}

GetSpliterPos(List, pref)
{
   Scintilla := GetCurrentScintilla(List, pref)
   if (pref = &quot;we&quot;)
      coord1 := &quot;X&quot;, coord2 := &quot;W&quot;
   else
      coord1 := &quot;Y&quot;, coord2 := &quot;H&quot;
   
   ControlGetPos, X, Y, W, H, %pref%spliter1
   center := %coord1% + %coord2%//2
   ControlGetPos, X, Y, W, H, % Scintilla
   
   if (Abs(%coord1% - center) &lt; Abs(%coord1% + %coord2% - center))
      Return (pref = &quot;we&quot;) ? &quot;D&quot; : &quot;R&quot;
   else
      Return (pref = &quot;we&quot;) ? &quot;U&quot; : &quot;L&quot;
}

GetCurrentScintilla(List, pref)
{
   coord := pref = &quot;we&quot; ? &quot;W&quot; : &quot;H&quot;
   CurrentScintilla := Scintilla1, CoordPrev := 0
   Loop, parse, List, `n
   {
      if InStr(A_LoopField, &quot;Scintilla&quot;)  {
         ControlGet, vis, Visible,, % A_LoopField
         if vis  {
            ControlGetPos,,, W, H, % A_LoopField
            if (%coord% &gt; CoordPrev)
               CoordPrev := %coord%, CurrentScintilla := A_LoopField
         }
      }
   }
   Return CurrentScintilla
}</code></pre></div><p>Нужно учитывать, что Scintilla может быть не только с индексами 1 или 2, но и больше.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 25 Nov 2015 15:36:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99290#p99290</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99289#p99289</link>
			<description><![CDATA[<p><strong>yalanne</strong>, в таком случае срабатывает только со второго раза на переключение в правую область, а дальше меняет только фокусы областей при нажатии F8</p>]]></description>
			<author><![CDATA[null@example.com (avens)]]></author>
			<pubDate>Wed, 25 Nov 2015 15:25:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99289#p99289</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99283#p99283</link>
			<description><![CDATA[<p>11ю строку тогда замени<br /></p><div class="codebox"><pre><code> Vlpos := (focus_ctrl = &quot;Scintilla2&quot;) ? BT2pos : (focus_ctrl = &quot;Scintilla1&quot;) ? BT1pos : &quot;&quot;</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Wed, 25 Nov 2015 13:17:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99283#p99283</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99282#p99282</link>
			<description><![CDATA[<p>У меня первое нажатие всегда холостое, выводит текущую область из фокуса, а все последующие нажатия переключают нормально, но без фокуса на переключающуюся область.</p>]]></description>
			<author><![CDATA[null@example.com (avens)]]></author>
			<pubDate>Wed, 25 Nov 2015 11:10:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99282#p99282</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99280#p99280</link>
			<description><![CDATA[<div class="codebox"><pre><code>#if WinActive(&quot;ahk_exe notepad++.exe&quot;)
 f8::
 ControlGetPos,,,W, ,nsspliter1,A
 ControlGetPos,,, ,H,wespliter1,A
 WinGetTitle old_Title,A
 WorH_ctrl := (H) ? &quot;wespliter1&quot; : (W) ? &quot;nsspliter1&quot; : &quot;&quot;
 BT1pos := &quot;x1 y1&quot; 
 BT2pos := &quot;x&quot; (W?W-2 : 1) &quot; y&quot; (H?H-2 : 1)
 ControlGetFocus focus_ctrl,A
 sendInput {F8}
 Vlpos := (focus_ctrl = &quot;Scintilla1&quot;) ? BT2pos : (focus_ctrl = &quot;Scintilla2&quot;) ? BT1pos : &quot;&quot;
 ControlClick, % WorH_ctrl, A,,,, NA %Vlpos% D
 ControlClick, % WorH_ctrl, A,,,, NA %Vlpos% U
 keywait % A_ThisHotkey 
 return
#if</code></pre></div><p>По идее когда активна первая группа(когда контрол находится с лева или в верху) у контрола Scintilla индекс 1, А со 2м индексом вторая группа(с права или в низу). Но иногда почему то скрипт видит наоборот у первой индекс 2, у второй индекс 1. Из за этого может быть холостое нажатие, после последующие нажатия переключения нормальное, но без фокуса.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Wed, 25 Nov 2015 09:21:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99280#p99280</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99278#p99278</link>
			<description><![CDATA[<p>А можно ли реализовать данное переключение по одной горячей клавише?</p>]]></description>
			<author><![CDATA[null@example.com (avens)]]></author>
			<pubDate>Wed, 25 Nov 2015 08:13:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99278#p99278</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99276#p99276</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>F8, нет?</p></blockquote></div><div class="quotebox"><blockquote><p>serzh82saratov, По F8 там переключение фокуса идет, но если область располагается на весь размер, то просто фокус уходит в невидимую часть. А если нажимать на стрелочки то идет и не только фокус, но и показ.<br />Скорее тс хотел сделать что бы те же стрелочки нажимались с клавиатуры. Этот скрипт как раз это и делает.</p></blockquote></div><p>Точно, по F8 переключение только фокуса, я это уже смотрел.</p><p>Странно что не реализовано более удобного способа переключения средствами самого Notepad++, ведь фокус можно навести и одним кликом, а вот полностью переключаться между областями было бы хорошо.</p><p><strong>yalanne</strong>, скрипт работает отлично!</p>]]></description>
			<author><![CDATA[null@example.com (avens)]]></author>
			<pubDate>Wed, 25 Nov 2015 07:51:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99276#p99276</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99275#p99275</link>
			<description><![CDATA[<p><strong>alt + [</strong> - нажатие первой стрелочки.<br /><strong>alt + ]</strong> - нажатие второй стрелочки.<br /></p><div class="codebox"><pre><code>#if WinActive(&quot;ahk_exe notepad++.exe&quot;)
 !vkDB:: ; alt + [
 !vkDD:: ; alt + ]
 ControlGetPos,,,W, ,nsspliter1,A
 ControlGetPos,,, ,H,wespliter1,A
 WorH_ctrl := (H) ? &quot;wespliter1&quot; : (W) ? &quot;nsspliter1&quot; : &quot;&quot;
 BT1pos := &quot;x1 y1&quot; 
 BT2pos := &quot;x&quot; (W?W-2 : 1) &quot; y&quot; (H?H-2 : 1)
 Vlpos := ((A_ThisHotkey=&quot;!vkDB&quot;) ? BT1pos : BT2pos)
 ControlClick, % WorH_ctrl, A,,,, NA %Vlpos% D
 ControlClick, % WorH_ctrl, A,,,, NA %Vlpos% U
 return
#if</code></pre></div><p><strong>serzh82saratov</strong>, По F8 там переключение фокуса идет, но если область располагается на весь размер, то просто фокус уходит в невидимую часть. А если нажимать на стрелочки то идет и не только фокус, но и показ.<br />Скорее тс хотел сделать что бы те же стрелочки нажимались с клавиатуры. Этот скрипт как раз это и делает.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Wed, 25 Nov 2015 07:39:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99275#p99275</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99273#p99273</link>
			<description><![CDATA[<p>F8, нет?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Wed, 25 Nov 2015 06:44:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99273#p99273</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99272#p99272</link>
			<description><![CDATA[<p>Если эти координаты можно как-то предсказать / рассчитать, то <em>ControlClick</em>. Если невозможно, тогда <em>ImageSearch</em>.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Wed, 25 Nov 2015 06:08:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99272#p99272</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Нажатие по элементам Notepad++ с помощью SendMessage/PostMessage]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=99269#p99269</link>
			<description><![CDATA[<p>В Notepad++ реализовано отображения открытых документов в нескольких областях, это очень удобно если открыто много файлов, но вот переключаться между этими областями весьма неудобно, по крайней мере я не нашел как можно сделать переключение областей более удобно средствами самого Notepad++</p><p>Вопрос, как можно реализовать посылку нажатия переключения между областями по горячим клавишам с помощью SendMessage или PostMessage или каким то другим способом?</p><p>Во вложении на скрыншоте показано где в Notepad++ переключаться между областями.</p><p>Пробовал искать коды через Winspector, но ничего не нашел.</p>]]></description>
			<author><![CDATA[null@example.com (avens)]]></author>
			<pubDate>Tue, 24 Nov 2015 19:58:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=99269#p99269</guid>
		</item>
	</channel>
</rss>
