<?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=17436</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=17436&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Заблокировать Левую кнопку мыши, пока выполняется условие.».]]></description>
		<lastBuildDate>Fri, 28 Oct 2022 20:33:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Заблокировать Левую кнопку мыши, пока выполняется условие.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=155437#p155437</link>
			<description><![CDATA[<p><strong>__Михаил__</strong><br />Он громоздкий, но благодаря вам, я решил свою проблему.<br /></p><div class="codebox"><pre><code>
HotKey, Numpad7, Start, On ;Задаём Numpad7 метку Start
return

Start:
HotKey, LButton, Lock, On ; Когда вызвали метку, сразу блочим ЛКМ
KeyWait, Numpad7, U ; Отпускаем Numpad7
SetTimer, LButtonOff, 100 ;Запускаем таймер, чтобы когда лкм отжали, скрипт об этом знал.
GetKeyState, state, LButton, P 
If state = U ; Проверяем зажатость ЛКМ, если не нажат, выйти из действий и просто прокрутить вверх.
{
   HotKey, LButton, Lock, Off
   SendInput {WheelUp}
   return
}
If state = D ; Если ЛКМ остался зажатым, изменяем метку для Numpad7.
   HotKey, Numpad7, Lock2, On

Lock:
Return

Lock2: ; Метка со вторым действием.
GetKeyState, state, LButton, P
if state = U ;Если ЛКМ всё же отпустили, то выйти из метки и вернуть всё как было.
   {
      HotKey, Numpad7, Start, On
      HotKey, LButton, Lock, Off
      SetTimer, LButtonOff, off
      return
   }
if state = D ; Если ЛКМ всё еще зажат, то выполняем прокрутку вниз.
   SendInput {WheelDown}
Return

;Таймер на проверку отжатия ЛКМ клавиши.
LButtonOff:
GetKeyState, state, LButton, P
if state = U
   {
      SetTimer, LButtonOff, off
      HotKey, Numpad7, Start, On
      HotKey, LButton, Lock, Off
   }
   return
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Clannad5)]]></author>
			<pubDate>Fri, 28 Oct 2022 20:33:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=155437#p155437</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Заблокировать Левую кнопку мыши, пока выполняется условие.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=155430#p155430</link>
			<description><![CDATA[<p>Если верно всё понял:</p><div class="codebox"><pre><code>Numpad7::
KPress := 0
HotKey, vk1, Lock, On
KeyWait, % A_ThisHotkey, U
HotKey, vk1, Lock, Off

If (KPress = 0)
 ToolTip, Нажатий ЛКМ не было, 0,0
Else
 ToolTip, % &quot;Нажатий ЛКМ: &quot; KPress, 0,0
Return

Lock:
KPress++
ToolTip, % &quot;KPress: &quot; KPress, 0,0
Return</code></pre></div><p>Данный код позволит в зависимости от количества нажатий ЛКМ выполнять разные действия (если добавить).</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Fri, 28 Oct 2022 16:47:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=155430#p155430</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Заблокировать Левую кнопку мыши, пока выполняется условие.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=155399#p155399</link>
			<description><![CDATA[<p>Всем привет.<br />Решив сделать из одной кнопки два действия, я столкнулся с проблемой.</p><p>Этап действий:<br />1. Нажимаю на Numpad7<br />2. В этот момент нужно сразу же заблокировать любые нажатия левой кнопки мыши и поставить Keywait на отжатие Numpad7<br />3. После отжатия Numpad7 идёт условие: Если была зажата ЛКМ - выполнить одно действие. Если не была зажата - выполнить второе действие.</p><p>В момент 2 и 3, мне нужно чтобы любые ЛКМ нажатие по экрану блокировались, однако чтобы выполнялось условие на нажатие клавиши.<br />То есть это как если бы я в момент нажатие Numpad7 дописывал LButton::Return, однако так сделать нельзя.</p><p>Так как мне заблокировать ЛКМ в момент выполнения условия?</p><p>Вот примерные мои попытки:</p><div class="codebox"><pre><code>
Numpad7::
{
    KeyWait &quot;Numpad7&quot;,&#039;Up&#039;
    State := GetKeyState(&#039;LButton&#039;, &#039;P&#039;)
    if State = 1
        {
    loop 
        {
            State := GetKeyState(&#039;LButton&#039;, &#039;P&#039;)
            State2 := GetKeyState(&#039;Numpad7&#039;, &#039;P&#039;)
            if State = 1 and State2 = 1
                {
                KeyWait &quot;Numpad7&quot;, &#039;Up&#039;
                SendInput &quot;{WheelDown}&quot;
                }
            if State2 = 0
                break
        }
    }
    else
    SendInput &quot;{WheelUp}&quot;
}
</code></pre></div><p>Извините что код показываю в V2 виде, но для понимания я думаю смысл не утратится.<br />Суть в том, что в коде я никак не блокирую ЛКМ нажатие по экрану и из-за этого код становится нерабочим, т.к в редакторе работает колёсико только в том случае, если я не зажимаю ЛКМ по холсту.</p>]]></description>
			<author><![CDATA[null@example.com (Clannad5)]]></author>
			<pubDate>Fri, 28 Oct 2022 08:28:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=155399#p155399</guid>
		</item>
	</channel>
</rss>
