<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: добавить к кнопке мыши клавишу, если мышь зажата N sec]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9440</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9440&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: добавить к кнопке мыши клавишу, если мышь зажата N sec».]]></description>
		<lastBuildDate>Tue, 01 Apr 2014 13:04:59 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: добавить к кнопке мыши клавишу, если мышь зажата N sec]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81398#p81398</link>
			<description><![CDATA[<div class="codebox"><pre><code>~LButton::
    KeyWait LButton, T3
    if (ErrorLevel) {
        Send {vk51 Down}
        Sleep 1000
        Send {vk51 Up}
    }
    return</code></pre></div><div class="codebox"><pre><code>if ErrorLevel Gosub SendKeyQ</code></pre></div><p>это не работает.<br /></p><div class="quotebox"><blockquote><p>Send Q</p></blockquote></div><p>если нужно нажать клавишу, а не послать символ - используй vkXX</p>]]></description>
			<author><![CDATA[null@example.com (bWRmeA)]]></author>
			<pubDate>Tue, 01 Apr 2014 13:04:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81398#p81398</guid>
		</item>
		<item>
			<title><![CDATA[AHK: добавить к кнопке мыши клавишу, если мышь зажата N sec]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81378#p81378</link>
			<description><![CDATA[<p>В общем задачу вижу так:<br />Если мышь зажата более N sec нажать и удерживать клавишу Q в течении K sec</p><p>На первый взгляд нарисовал так:<br /></p><div class="codebox"><pre><code>
*LButton:: ; при НАЖАТИИ 
KeyWait, LButton, T3 ;N=3 ; ждать когда ОТПУСТИТ, если прошло 3 сек ErrorLevel =1
if ErrorLevel Gosub SendKeyQ
return

SendKeyQ:
Send Q
Sleep, 1000 ; K = 1
Send {Q Up}
return
</code></pre></div><p>Кроме того, что работает совсем не обращая внимание на условие 3 сек, в текстовом редакторе не происходит автоповтора буквы. Покопавши хелп выяснил, что возможно нужно в цикле посылать {Q Down}. Проверку отпускания клавиши как-то решил через замену KeyWait на SetTimer и проверку в подпрограмме состояния клавиши, казалось, осталось разобраться с выключением таймера после посылки серии q_нажато, но я уперся в вопрос:</p><p>а что при этом происходит с LButton? - мышь все еще передает &quot;я нажата&quot; или на событие &quot;вот я нажалась&quot; включается обработка, которая прерывает передачу &quot;нажато&quot;? На такую печальную мысль меня навело то, что мышь не передавала фокус в окне редактора текста скрипта, точнее не сразу передавала. Я подумал, что надо корректно сформулировать вопрос и спросить компетентных людей.</p><p>Надо _добавить_ к срабатыванию кнопки мыши (не меняя ее поведения) срабатывание клавиатурного макроса при условии, что а) мышь зажали на более чем N секунд б) на клавиатуре нужно зажать кнопку и отпустить ее через K секунд.</p><p>Подскажите как не прерывать мышь или я что-то не так понимаю?</p>]]></description>
			<author><![CDATA[null@example.com (boshi)]]></author>
			<pubDate>Mon, 31 Mar 2014 20:35:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81378#p81378</guid>
		</item>
	</channel>
</rss>
