<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=7115&amp;type=atom" />
	<updated>2015-09-14T07:32:21Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=7115</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97414#p97414" />
			<content type="html"><![CDATA[<p><strong>yalanne</strong>, что-то больно много скобочек. Так лучше:<br /></p><div class="codebox"><pre><code>msg := 0x201 ; WM_LBUTTONDOWN
SetFormat, IntegerFast, H ; Нужен только для первой строчки тултипа, показывает в hex&#039;е число.
Gui, Show,w100 h100
OnMessage(msg, &quot;WM_$BUTTON&quot;)
Return

WM_$BUTTON(wParam, lParam)
{
    ToolTip % &quot;Все:`t`t`t`t&quot; wParam &quot;`tlParam=&quot; lParam &quot;`n&quot;
        . &quot;`n[MK_CONTROL] Клавиша Ctrl:`t`t&quot;    ( wParam&amp;0x8 ? &quot;&quot; : &quot;не&quot;) &quot; нажата`n&quot;
        . &quot;`n[MK_LBUTTON] Клавиша LButton:`t&quot;   ( wParam&amp;0x1 ? &quot;&quot; : &quot;не&quot;) &quot; нажата`n&quot;
        . &quot;`n[MK_MBUTTON] Клавиша MButton:`t&quot;   ( wParam&amp;0x10 ? &quot;&quot; : &quot;не&quot;) &quot; нажата`n&quot;
        . &quot;`n[MK_RBUTTON] Клавиша RButton:`t&quot;   ( wParam&amp;0x2 ? &quot;&quot; : &quot;не&quot;) &quot; нажата`n&quot;
        . &quot;`n[MK_SHIFT] Клавиша Shift:`t`t&quot;     ( wParam&amp;0x4 ? &quot;&quot; : &quot;не&quot;) &quot; нажата`n&quot;
        . &quot;`n[MK_XBUTTON1] Клавиша XBUTTON1:`t&quot; ( wParam&amp;0x20 ? &quot;&quot; : &quot;не&quot;) &quot; нажата`n&quot;
        . &quot;`n[MK_XBUTTON2] Клавиша XBUTTON2:`t&quot; ( wParam&amp;0x40 ? &quot;&quot; : &quot;не&quot;) &quot; нажата`n&quot;
        . &quot;`nx &quot; lParam&amp;0xffff
        . &quot;`ny &quot; lParam&gt;&gt; 16
}
</code></pre></div><p>Попутно <a href="http://forum.script-coding.com/viewtopic.php?id=7632">тему</a> нашел.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2015-09-14T07:32:21Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97414#p97414</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97412#p97412" />
			<content type="html"><![CDATA[<p><strong>Drugoy</strong>,<br /><a href="https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms645607(v=vs.85).aspx">На сайте microsoft&#039;а байты расписаны.</a> Они Могут быть в шестнадцатеричной или в десятичной системе счисления, так же их можно комбинировать. <br />В сообщениях WM_<strong><span style="color: blue">[L,R,M]</span></strong>BUTTON<strong><span style="color: blue">[DOWN,UP]</span></strong> Вроде как если задать параметр в wParam то не чего не будет(то есть в постах выше он нечего не делает. но возможно и ошибаюсь). Но вот если получать ответ то можно узнать какая кнопка на данный момент нажата физически. Вот пример с ответом своего окна:<br />(Исправленный вариант постом нижу у Alectric)</p>]]></content>
			<author>
				<name><![CDATA[yalanne]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=32850</uri>
			</author>
			<updated>2015-09-14T06:08:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97412#p97412</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97387#p97387" />
			<content type="html"><![CDATA[<p>Если кто-нибудь кроме ув. <strong>Irbis</strong> знает ответы на мои вопросы - прошу, ответьте!</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2015-09-12T18:54:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97387#p97387</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97220#p97220" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Irbis пишет:</cite><blockquote><p>Если <em>вкратце</em>, то 1 означает установку бита MK_LBUTTON в состояние ON (сообщает окну, что нажата ЛКМ).</p></blockquote></div><p>1. А как вы это узнали?<br />По ссылке, что вы приводили - для wParam идёт список допустимых значений:<br /></p><div class="codebox"><pre><code>MK_CONTROL
MK_LBUTTON
MK_MBUTTON
MK_RBUTTON
MK_SHIFT
MK_XBUTTON1
MK_XBUTTON2 </code></pre></div><p>Если все эти значения - биты, то ваша 1 - это значение в какой системе&nbsp; и откуда оно получилось? Не должен ли MK_LBUTTON ON быть 0100000 в двоичной системе (или 20 в шестнадцатеричной или 32 в десятичной)?</p><p>2. Можете поподробнее рассказать про возможные аргументы wParam для этого и аналогичных сообщений? могут ли быть комбинации этих битов или оно не будет иметь смысл?</p><p>3. Какой смысл у значений вроде MK_MBUTTON/MK_RBUTTON, если отправляемая кнопка мыши зависит от (номера) посылаемого сообщения? Эти аргументы wParam же приведены для сообщения WM_<strong>LBUTTON</strong>DOWN! Что будет если отправить wParam=MK_RBUTTON для этого сообщения?</p>]]></content>
			<author>
				<name><![CDATA[Drugoy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27463</uri>
			</author>
			<updated>2015-09-08T10:53:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97220#p97220</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97212#p97212" />
			<content type="html"><![CDATA[<p>Некоторые программы в свёрнутом виде воспринимают ControlClick, нужно пробовать.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2015-09-08T07:53:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97212#p97212</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=97208#p97208" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
IfWinactive, ahk_exe MyProgram.exe
Send, {F2}{alt}{t}{v}{f}
ControlClick, button2, * - MyProgram ahk_class MyProgram .Class.Frame, , left, , , x136 y18 NA
WinWait, MySubWindow -- MyTitle
Winhide, MySubWindow -- MyTitle
WinWaitClose, MySubWindow -- MyTitle
Sleep, 300
Send, ^+{vkDB}
Sleep, 300
Send, {alt}{t}{w}
Return
Reload</code></pre></div><p>Имеется сценарий, по которому в программу посылаются нажатия клавиш, далее открывается дочернее окно программы со шкалой прогресса, по завершению прогресса окно закрывается, в результате чего отправляется еще группа клавиш. Скажите, пожалуйста, возможно ли реализовать данный сценарий при свернутом на панель задач окне программы?</p>]]></content>
			<author>
				<name><![CDATA[becauseim]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33149</uri>
			</author>
			<updated>2015-09-08T06:38:04Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=97208#p97208</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59433#p59433" />
			<content type="html"><![CDATA[<p>creature.ws, спасибо.<br />Картина вырисовывается. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2012-04-16T20:40:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59433#p59433</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59432#p59432" />
			<content type="html"><![CDATA[<p>Если в родительском окне по координатам 0:0 находиться верхний левый угол некого дочернего окна имеющего размеры 100x100px, то клик отправленный в родительское окно по координатам 50:50 не придётся на дочернее окно, клик будет произведён «под ним»&nbsp; по родительскому.</p><p>Под Target Window имеется в виду окно по которому будет произведён клик. (В контексте вышеупомянутого&nbsp; использования PostMessage)</p><p>Родительское и дочерние окна — как слои в графическом редакторе <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> не следует «видеть» их «глазами пользователя».</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2012-04-16T20:16:49Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59432#p59432</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59431#p59431" />
			<content type="html"><![CDATA[<p>Нет, всё-таки не всё понятно<br /></p><div class="quotebox"><blockquote><p>У тебя условие какое? Если приложение не имеет видимых контролов. А у блокнота один такой большой контрол Edit, которому и надо отправлять сообщение.</p></blockquote></div><p>Но в справке сказано<br /></p><div class="quotebox"><blockquote><p>Control - If this parameter is blank or omitted, the message will be sent directly to the target window rather than one of its controls.</p></blockquote></div><p><a href="http://www.autohotkey.com/docs/commands/PostMessage.htm">http://www.autohotkey.com/docs/commands/PostMessage.htm</a><br />Что имеется ввиду под Target Window - Окно блокнота целиком (его периметр)?<br />Или все места без обозначеннных контролов?<br />И куда в итоге посылается клик при конструкции без указания контрола в ноутпаде?<br /></p><div class="quotebox"><blockquote><p>Один из возможных способов - отправлять окну с идентификатором id сообщение о клике мышкой по кооординатам x, y:</p></blockquote></div><p>А что есть ещё другие варианты?<br />Это я так, чисто для самообразования.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2012-04-16T19:49:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59431#p59431</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59430#p59430" />
			<content type="html"><![CDATA[<p>Да, теперь понятно спасибо!<br /></p><div class="quotebox"><blockquote><p>Но почему-то координаты нажатия по F11 берутся от угла всего окна, а отправляются через PostMessage со смещением на ширину заголовка. Непонятно, почему, но можно компенсировать.</p></blockquote></div><p>Можно вот этим кодом.<br /></p><div class="codebox"><pre><code>F11:: 
SysGet, TitleBarHeight, 4
msgbox %TitleBarHeight%</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2012-04-16T19:31:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59430#p59430</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59427#p59427" />
			<content type="html"><![CDATA[<p>У тебя условие какое? Если приложение не имеет видимых контролов. А у блокнота один такой большой контрол Edit, которому и надо отправлять сообщение.</p><div class="codebox"><pre><code>F11:: MouseGetPos x, y, id, cont
F12::
   PostMessage, 0x201, 1, ((y&lt;&lt;16)^x), %cont%,  ahk_id %id%
   PostMessage, 0x202 , 0, ((y&lt;&lt;16)^x), %Cont%, ahk_id %id%
return</code></pre></div><p>Или, модернизируя твой пример:<br /></p><div class="codebox"><pre><code>settitlematchmode 2
F12::
   PostMessage, 0x201, 1, ((100&lt;&lt;16)^100), Edit1,  ahk_class Notepad
   PostMessage, 0x202 , 0, ((100&lt;&lt;16)^100), Edit1, ahk_class Notepad
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-16T18:38:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59427#p59427</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59426#p59426" />
			<content type="html"><![CDATA[<p>Вот смотри, я запускаю блокнот, обвожу там весь текст в документе, мышку оставляю в зоне выделения.<br />Потоми запускаю твой скрипт и текст продолжает оставаться выделенным.<br /></p><div class="codebox"><pre><code>F11:: MouseGetPos x, y, id
F12::
   PostMessage, 0x201, 1, ((y&lt;&lt;16)^x), , ahk_id %id%
   PostMessage, 0x202 , 0, ((y&lt;&lt;16)^x), , ahk_id %id%
return</code></pre></div><p>Как так?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2012-04-16T18:24:38Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59426#p59426</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59425#p59425" />
			<content type="html"><![CDATA[<p>Если <em>вкратце</em>, то 1 означает установку бита MK_LBUTTON в состояние ON (сообщает окну, что нажата ЛКМ),<br />а конструкция (y&lt;&lt;16)^x &quot;упаковывает&quot;, так сказать, координаты x и y в lParam, т.е. старшая часть (3,4 байты) содержит y, а младшая чать (1,2 байты) содержит x<br />В Опере работает так:<br /></p><div class="codebox"><pre><code>F11:: MouseGetPos x, y, id
F12::
   PostMessage, 0x201, 1, ((y&lt;&lt;16)^x), , ahk_id %id%
   PostMessage, 0x202 , 0, ((y&lt;&lt;16)^x), , ahk_id %id%
return</code></pre></div><p>Но почему-то координаты нажатия по F11 берутся от угла всего окна, а отправляются через PostMessage со смещением на ширину заголовка. Непонятно, почему, но можно компенсировать.</p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-16T18:09:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59425#p59425</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59424#p59424" />
			<content type="html"><![CDATA[<p>Я там уже ползал, но не нашёл ответа.<br />Может просветишь вкратце?<br />И кстати в ноутпаде такое не прокатывает <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /><br /></p><div class="codebox"><pre><code>settitlematchmode 2
f11:: 
  PostMessage, 0x201, 1, ((100&lt;&lt;16)^100), , ahk_class Notepad         ;WM_LBUTTONDOWN
  PostMessage, 0x202, 0, ((100&lt;&lt;16)^100), , ahk_class Notepad               ;WM_LBUTTONUP</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2012-04-16T17:57:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59424#p59424</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Послать клик мышкой в определённое место минимизированного окна]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=59423#p59423" />
			<content type="html"><![CDATA[<p><a href="http://vsokovikov.narod.ru/New_MSDN_API/Mouse_input/notify_wm_lbuttondown.htm">WM_LBUTTONDOWN</a></p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-16T17:53:10Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=59423#p59423</id>
		</entry>
</feed>
