<?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="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16457&amp;type=atom" />
	<updated>2021-06-27T20:56:26Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16457</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение и удержание клавиши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148632#p148632" />
			<content type="html"><![CDATA[<p>Можно в этой строчке<br /></p><div class="codebox"><pre><code>KeyWait, %key%, T.3</code></pre></div><p>изменить T.3 на T.2 (на меньшее значение), чтобы успевало срабатывать при удержании.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-27T20:56:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148632#p148632</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение и удержание клавиши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148631#p148631" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong></p><p>Благодарю! Все работает отлично.</p>]]></content>
			<author>
				<name><![CDATA[Seres]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41838</uri>
			</author>
			<updated>2021-06-27T20:51:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148631#p148631</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение и удержание клавиши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148630#p148630" />
			<content type="html"><![CDATA[<p>Тогда так:<br /></p><div class="codebox"><pre><code>shiftState := 0
*$LShift::
*$RShift::
   key := SubStr(A_ThisHotkey, -5)
   Send, {%key% Down}
   KeyWait, %key%, T.3
   if ErrorLevel {
      KeyWait, %key%
      Send, {%key% Up}
      shiftState := 0
   }
   else if !(shiftState := !shiftState)
      Send {LShift Up}{RShift Up}
   Return</code></pre></div><div class="quotebox"><cite>Seres пишет:</cite><blockquote><p>Версия AHK 1.1.28</p></blockquote></div><p>Должно работать и с этой версией, но вообще предполагается, что выложенный на форуме код будет работать с самой свежей версией AHK (и не обязательно с предыдущими), так что лучше всегда обновляться.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-27T20:08:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148630#p148630</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение и удержание клавиши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148629#p148629" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong></p><p>Спасибо за ответ, но к сожалению не работает. Если удерживать и потом отпустить физ кнопку клавиша остается нажатой, если удерживается скриптом зажать физ кнопку, то скрипт отпускает. В общем, просто как зажатый шифт клавиша не работает. Если это имеет какое-то значение, то скрипт нужен для Blender-а. Версия AHK 1.1.28</p>]]></content>
			<author>
				<name><![CDATA[Seres]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41838</uri>
			</author>
			<updated>2021-06-27T19:29:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148629#p148629</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переключение и удержание клавиши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148626#p148626" />
			<content type="html"><![CDATA[<p>Попробуйте так:<br /></p><div class="codebox"><pre><code>shiftState := 0
$Shift::
   KeyWait, Shift, 300
   if ErrorLevel {
      Send, {Shift Down}
      KeyWait, Shift
      Send, {Shift Up}
      shiftState := 0
   }
   else {
      if shiftState := !shiftState
         Send {Shift Down}
      else
         Send {Shift Up}
   }
   Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-27T18:00:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148626#p148626</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Переключение и удержание клавиши.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148624#p148624" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
stateShift:=0
Shift::
	Sleep, 150
	GetKeyState, state, Shift, P;
	If state = U
	{
		If (stateShift=0)
		{
			send {Shift down}
			stateShift:=1
		}
		Else
		{
			send {Shift up}
			stateShift:=0
		}
	}
	Else
	{
		If (stateShift=0)
		{
			stateShift:=1
			send {Shift up}
		}
	}
Return
</code></pre></div><p>Что нужно:<br />Первое нажатие не удерживая клавишу -&gt; клавиша зажата скриптом.<br />Второе нажатие не удерживая клавишу -&gt; клавиша отжата скриптом.<br />Клавиша удерживается физически -&gt; работает как обычная клавиша, но если была зажата скриптом,&nbsp; то будет отпущена после физического отжатия клавиши.</p><p>Я не пойму как сделать физ. удержание, работает только как переключатель.</p>]]></content>
			<author>
				<name><![CDATA[Seres]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41838</uri>
			</author>
			<updated>2021-06-27T14:58:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148624#p148624</id>
		</entry>
</feed>
