<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Управление окнами мышкой]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=10540</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10540&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Управление окнами мышкой».]]></description>
		<lastBuildDate>Sat, 20 Jul 2019 13:12:12 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134980#p134980</link>
			<description><![CDATA[<p>Добрый день.<br />Код работает, но у меня стоит Win10 DPI fix и, соответственно, 125% масштаб интерфейса.<br />Все клики приведённого выше скрипта смещены относительно кнопок на сколько-то пикселей (разное кол-во, в зависимости от близости к краю, вроде бы).<br />Может быть, кто-то знает, как скорректировать скрипт под измененный масштаб?<br />Возможно, есть встроенные функции WM на эту тему.<br />Поиском не удалось найти ничего похожего..<br />Заранее благодарю.</p>]]></description>
			<author><![CDATA[null@example.com (Astoria)]]></author>
			<pubDate>Sat, 20 Jul 2019 13:12:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134980#p134980</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92947#p92947</link>
			<description><![CDATA[<p>На nncron-е работало немного по другому, там в цикле отслеживались нужные клики мышкой, если клик был то этим кликом окно сразу делалось активным, посылался WM_NCHITTEST и уже дальше выбиралось нужное действие.. Но как я уже говорил глючило тоже регулярно.. Посмотрим как на AHK работать будет..</p>]]></description>
			<author><![CDATA[null@example.com (Alexey244)]]></author>
			<pubDate>Thu, 02 Apr 2015 20:13:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92947#p92947</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92946#p92946</link>
			<description><![CDATA[<p>Действительно, далеко не факт, что под курсором активно окно.<br />Можно и в глобальную переменную записывать HWND, но &quot;это не наши методы&quot; (с) <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="codebox"><pre><code>#NoEnv
#If res := NCHITTEST(id)
RButton::
MButton::
   WinGetTitle, Title, AHK_id %id%
   try Gosub %A_ThisHotkey%_%res%
#If
Return

RButton_MINBUTTON:
   MsgBox, Нажатие RButton над кнопкой «Свернуть»`n%Title%
Return
RButton_CLOSE:
   MsgBox, Нажатие RButton над кнопкой «Закрыть»`n%Title%
Return
MButton_MINBUTTON:
   MsgBox, Нажатие MButton над кнопкой «Свернуть»`n%Title%
Return
MButton_CLOSE:
   MsgBox, Нажатие MButton над кнопкой «Закрыть»`n%Title%
Return

Esc:: ExitApp

NCHITTEST(ByRef hWnd)
{  ; из списка удалена позиция &quot;CLIENT&quot;, соответствующая клиентской части окна
   static pos := [ &quot;&quot;,&quot;CAPTION&quot;,&quot;SYSMENU&quot;,&quot;SIZE&quot;,&quot;MENU&quot;,&quot;HSCROLL&quot;,&quot;VSCROLL&quot;
                  ,&quot;MINBUTTON&quot;,&quot;MAXBUTTON&quot;,&quot;LEFT&quot;,&quot;RIGHT&quot;,&quot;TOP&quot;,&quot;TOPLEFT&quot;,&quot;TOPRIGHT&quot;
                  ,&quot;BOTTOM&quot;,&quot;BOTTOMLEFT&quot;,&quot;BOTTOMRIGHT&quot;,&quot;BORDER&quot;,&quot;OBJECT&quot;,&quot;CLOSE&quot;,&quot;HELP&quot; ]
   CoordMode, Mouse
   MouseGetPos, X, Y, hWnd
   SendMessage, WM_NCHITTEST := 0x84,, X | Y&lt;&lt;16,, ahk_id %hWnd%
   Return pos[ErrorLevel]
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Thu, 02 Apr 2015 20:04:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92946#p92946</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92945#p92945</link>
			<description><![CDATA[<p>Еще раз всем спасибо за участие и отзывчивость. Пойду изобретать свое двухколесное средство. В планах у меня еще отслеживание позиции корсора на таких длинных элементах как заголовок окна&nbsp; CAPTION и рамка (&quot;LEFT&quot;,&quot;RIGHT&quot;,&quot;TOP&quot; и &quot;BOTTOM&quot;) и в зависимости от позиции делать разные действия.. Например менять прозрачность окна кликая пр.кн. по нижней границе и чемближе к правому углу окна тем более прозрачнее...<br />Но это я так, идеей делюсь и не призываю никого писать для меня готовый код.. Я и так чувствую что мое спасибо это слишком мало за эту помощь.. Надеюсь, что не мне одному пригодятся эти примеры.</p>]]></description>
			<author><![CDATA[null@example.com (Alexey244)]]></author>
			<pubDate>Thu, 02 Apr 2015 20:01:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92945#p92945</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92943#p92943</link>
			<description><![CDATA[<p>Ну, в идеале-то ещё нужно учитывать hWnd (или заголовок) окна, который функция могла бы возвращать через ByRef-параметр. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 02 Apr 2015 19:39:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92943#p92943</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92942#p92942</link>
			<description><![CDATA[<div class="quotebox"><cite>Alexey244 пишет:</cite><blockquote><p>&lt;...&gt; Читал сегодня мануалы, так и не смог понять есть ли в AHK такой оператор как CASE?? Или выбор действия придется множеством If–ов делать?</p></blockquote></div><p>Ну как тут не изобрести свое двухколесное средство передвижения, тем более <strong>teadrinker</strong> в двух вариантах кода приложил почти все комплектующие к нему. <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /><br /></p><div class="codebox"><pre><code>#NoEnv
#If res := NCHITTEST()
RButton::
MButton::
   try Gosub %A_ThisHotkey%_%res%
#If
Return

RButton_MINBUTTON:
   MsgBox, Здесь действие при нажатии RButton над кнопкой «Свернуть»
Return
RButton_CLOSE:
   MsgBox, Здесь действие при нажатии RButton над кнопкой «Закрыть»
Return
MButton_MINBUTTON:
   MsgBox, Здесь действие при нажатии MButton над кнопкой «Свернуть»
Return
MButton_CLOSE:
   MsgBox, Здесь действие при нажатии MButton над кнопкой «Закрыть»
Return

Esc:: ExitApp

NCHITTEST()
{  ; из списка удалена позиция &quot;CLIENT&quot;, соответствующая клиентской части окна
   static pos := [ &quot;&quot;,&quot;CAPTION&quot;,&quot;SYSMENU&quot;,&quot;SIZE&quot;,&quot;MENU&quot;,&quot;HSCROLL&quot;,&quot;VSCROLL&quot;
                  ,&quot;MINBUTTON&quot;,&quot;MAXBUTTON&quot;,&quot;LEFT&quot;,&quot;RIGHT&quot;,&quot;TOP&quot;,&quot;TOPLEFT&quot;,&quot;TOPRIGHT&quot;
                  ,&quot;BOTTOM&quot;,&quot;BOTTOMLEFT&quot;,&quot;BOTTOMRIGHT&quot;,&quot;BORDER&quot;,&quot;OBJECT&quot;,&quot;CLOSE&quot;,&quot;HELP&quot; ]
   CoordMode, Mouse
   MouseGetPos, X, Y, hWnd
   SendMessage, WM_NCHITTEST := 0x84,, X | Y&lt;&lt;16,, ahk_id %hWnd%
   Return pos[ErrorLevel]
}</code></pre></div><p>Upd: Почему-то <em>try Gosub &lt;..&gt;</em> не срабатывает, будучи&nbsp; записанным на одной строке с хоткеем, хотя формально это однострочная директива. Один <em>Gosub</em> срабатывает, а так - нет.</p>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Thu, 02 Apr 2015 19:28:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92942#p92942</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92941#p92941</link>
			<description><![CDATA[<p>Если срабатывания над какими-то элементами окна не нужны, можно удалить эти элементы из списка, оставив вместо них пустые кавычки.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 02 Apr 2015 18:46:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92941#p92941</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92940#p92940</link>
			<description><![CDATA[<p>Для практического использования данного кода принцип такой:<br /></p><div class="codebox"><pre><code>#If res := NCHITTEST()
RButton::
   if (res = &quot;MINBUTTON&quot;)  {
      MsgBox, Здесь действие при нажатии RButton над кнопкой «Свернуть»
   }
   else if (res = &quot;CLOSE&quot;)  {
      MsgBox, Здесь действие при нажатии RButton над кнопкой «Закрыть»
   }
   Return
   
MButton::
   if (res = &quot;MINBUTTON&quot;)  {
      MsgBox, Здесь действие при нажатии MButton над кнопкой «Свернуть»
   }
   else if (res = &quot;CLOSE&quot;)  {
      MsgBox, Здесь действие при нажатии MButton над кнопкой «Закрыть»
   }
   Return
   
#If
Esc:: ExitApp

NCHITTEST()
{  ; из списка удалена позиция &quot;CLIENT&quot;, соответствующая клиентской части окна
   static pos := [ &quot;&quot;,&quot;CAPTION&quot;,&quot;SYSMENU&quot;,&quot;SIZE&quot;,&quot;MENU&quot;,&quot;HSCROLL&quot;,&quot;VSCROLL&quot;
                  ,&quot;MINBUTTON&quot;,&quot;MAXBUTTON&quot;,&quot;LEFT&quot;,&quot;RIGHT&quot;,&quot;TOP&quot;,&quot;TOPLEFT&quot;,&quot;TOPRIGHT&quot;
                  ,&quot;BOTTOM&quot;,&quot;BOTTOMLEFT&quot;,&quot;BOTTOMRIGHT&quot;,&quot;BORDER&quot;,&quot;OBJECT&quot;,&quot;CLOSE&quot;,&quot;HELP&quot; ]
   CoordMode, Mouse
   MouseGetPos, X, Y, hWnd
   SendMessage, WM_NCHITTEST := 0x84,, X | Y&lt;&lt;16,, ahk_id %hWnd%
   Return pos[ErrorLevel]
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 02 Apr 2015 18:39:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92940#p92940</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92939#p92939</link>
			<description><![CDATA[<p>Уважаемый teadrinker, а не могли бы вы слегка подкорректировать ваш последний пример таким образом, чтобы в нем было несколько MsgBox, и отображали они сообщения не из переменных значений, а из постоянных. Например<br />MsgBox &quot;Нажата ср.кнопка мыши над кнопкой свернуть&quot;<br />Я, к своему стыду, пока не могу вникнуть куда мне вставить код, к примеру, делающий активное окно поверх всех окон при нажатии пр.кн.мыши над «развернуть»..<br />Читал сегодня мануалы, так и не смог понять есть ли в AHK такой оператор как CASE?? Или выбор действия придется множеством If–ов делать?</p>]]></description>
			<author><![CDATA[null@example.com (Alexey244)]]></author>
			<pubDate>Thu, 02 Apr 2015 18:31:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92939#p92939</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92938#p92938</link>
			<description><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Зачем эти лишние телодвижения и расход памяти</p></blockquote></div><p>Так ты тоже заметил, что нарушать правила легче, чем выполнять их? Вопрос лишь в последствиях. Но я уверен, что образованные и культурные люди, которые собираются на нашем форуме, не встанут на этот скользкий путь! А кто некультурный — тому бан.<br /></p><div class="quotebox"><cite>yalanne пишет:</cite><blockquote><p>добавил комментарии к скрипту</p></blockquote></div><p>Комментировать код — прекрасная привычка, которой напрочь лишены большинство завсегдатаев раздела AHK. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Но едва ли необходимы комментарии типа<br /></p><div class="codebox"><pre><code>#Persistent ; Делает скрипт постоянно выполняющимся</code></pre></div><p>Во-первых, что делает данная директива и так написано в справке, ни к чему её копировать. Во-вторых, эта команда не нужна в данном коде вовсе. Комментируют же обычно тонкости алгоритма, которые могут быть не совсем понятны на первый взгляд.<br />Но я, когда говорил про аккуратность и понятность, имел в виду не совсем это. Сравните:<br /></p><div class="codebox"><pre><code>#If res := NCHITTEST()
RButton::
MButton:: MsgBox, % &quot;Нажата &quot; A_ThisHotkey &quot; над &quot; res
#If
Esc:: ExitApp

NCHITTEST()
{  ; из списка удалена позиция &quot;CLIENT&quot;, соответствующая клиентской части окна
   static pos := [ &quot;&quot;,&quot;CAPTION&quot;,&quot;SYSMENU&quot;,&quot;SIZE&quot;,&quot;MENU&quot;,&quot;HSCROLL&quot;,&quot;VSCROLL&quot;
                  ,&quot;MINBUTTON&quot;,&quot;MAXBUTTON&quot;,&quot;LEFT&quot;,&quot;RIGHT&quot;,&quot;TOP&quot;,&quot;TOPLEFT&quot;,&quot;TOPRIGHT&quot;
                  ,&quot;BOTTOM&quot;,&quot;BOTTOMLEFT&quot;,&quot;BOTTOMRIGHT&quot;,&quot;BORDER&quot;,&quot;OBJECT&quot;,&quot;CLOSE&quot;,&quot;HELP&quot; ]
   CoordMode, Mouse
   MouseGetPos, X, Y, hWnd
   SendMessage, WM_NCHITTEST := 0x84,, X | Y&lt;&lt;16,, ahk_id %hWnd%
   Return pos[ErrorLevel]
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 02 Apr 2015 15:32:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92938#p92938</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92932#p92932</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>аккуратней и понятней</p></blockquote></div><p>добавил комментарии к скрипту <img src="//forum.script-coding.com/img/smilies/roll.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Thu, 02 Apr 2015 09:36:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92932#p92932</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92931#p92931</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Это в девять утра-то, когда на форуме кроме тебя никого нет?</p></blockquote></div><p>Да я обычно и не смотрю, есть кто или нет. Зачем эти лишние телодвижения и расход памяти, если можно процитировать? <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /></p><p>Да и привычка у человека уже сформировалась, видимо, на других форумах, а привычка — вторая натура.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Thu, 02 Apr 2015 07:26:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92931#p92931</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92929#p92929</link>
			<description><![CDATA[<p><strong>yalanne</strong>, так уже лучше, но всё это записать можно аккуратней и понятней (особенно предпоследнюю строчку).</p><div class="quotebox"><cite>yalanne пишет:</cite><blockquote><p>5) без понятий. Так уже в примере было.</p></blockquote></div><p>Такая запись понадобилась бы, если б x и y могли принимать отрицательные значения, в данном случае же это ни к чему.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 02 Apr 2015 06:39:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92929#p92929</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92928#p92928</link>
			<description><![CDATA[<div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Off</div><div class="fancy_spoiler"><p>Есть кнопка &quot;Предпросмотр&quot; - категорически рекомендовано к использованию министерством образования РФ, в частности спецкомитетом по борьбе с ошибками, а точнее его подразделением по отлову и уничтожению очепяток. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> )<br />Новые посты, при их появлении, при этом будут показаны прямо под вашим ответом.</p></div></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Thu, 02 Apr 2015 06:28:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92928#p92928</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Управление окнами мышкой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=92927#p92927</link>
			<description><![CDATA[<p><strong>teadrinker</strong>,<br />1) Исправил.<br />2) Предлагаю другие варианты, если их доработать будет альтернативой. <br />3) Исправил на это <br /></p><div class="codebox"><pre><code>#if (WM_NCHITTEST:=WM_NCHITTEST()) and (WM_NCHITTEST=8) or (WM_NCHITTEST=9) or (WM_NCHITTEST=20)</code></pre></div><p>что бы вызывалось 1 раз а не 6.<br />В этом If&#039;е убирает другие сообщения. оставляет только 8,9,20 - которые соответствуют действиям свернуть, развернуть, закрыть.<br />4) Чтобы не вызывалось и бралось из переменной.<br /> </p><div class="codebox"><pre><code>msgbox % &quot;Нажата &quot; ( (WM_NCHITTEST=8) ? &quot;свернуть&quot; : ((WM_NCHITTEST=9) ? &quot;развернуть&quot; : ((WM_NCHITTEST=20) ? &quot;закрыть&quot; : &quot;&quot; ))) &quot; &quot; ((A_ThisHotkey=&quot;Lbutton&quot;) ? &quot;левой&quot; : ((A_ThisHotkey=&quot;Rbutton&quot;) ? &quot;правой&quot; : ((A_ThisHotkey=&quot;Mbutton&quot;) ? &quot;средней&quot; : &quot;&quot;))) &quot; клавишей.&quot;</code></pre></div><p>5) Без понятий. Так уже в примере было.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Thu, 02 Apr 2015 06:26:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=92927#p92927</guid>
		</item>
	</channel>
</rss>
