<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8581</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8581&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Как применять #if,если хоткей  выполняется через метку?».]]></description>
		<lastBuildDate>Sat, 11 Jul 2026 01:39:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=163458#p163458</link>
			<description><![CDATA[<p><strong>serzh82saratov</strong><br />А можете предложить вариант, как делать динамические комбо с клавишами как аналог определений типа 1 &amp; 2::.<br />То есть зажатие клавиши 1 делает ее шифтом и включает хоткей для клавиши 2, а при отжатии отключает обратно.</p><p>Спрашиваю потому, что столкнулся со странным глюком одиночный нажатий при определении комбо с этими клавишами.<br /></p><div class="codebox"><pre><code>
1::1 ; срабатывает для одиночных нажатий клавиши при отжатии клавиши
2::2 ; -//-
1 &amp; 2::3 ; срабатывает при нажатии 1 + 2, автоповтор
2 &amp; 1::4 ; срабатывает при нажатии 2 + 1, -//-
</code></pre></div><p>Если просто нажать и отпустить 1 на разных устройствах ввода, то работает нормально. То же самое для 2.<br />Если зажать пробел и потом нажать и отпустить 1 или 2 на одном устройстве ввода, то тоже работает нормально.<br />Если зажать пробел на одном устройстве ввода, а 1 или 2 на другом - одиночное нажатие и отпускание не работает, хотя комбо работают нормально.<br />Возможно можно решить эту проблему через динамические назначения хоткеев?<br />Что-то типа такого :<br /></p><div class="codebox"><pre><code>
1::
  down_1:=1
  hotkey 2,down_1_2
return
1 up::
  hotkey 2,off
  if down_1
    send 1
return
2::
  down_2:=1
  hotkey 1,down_2_1
return
2 up::
  hotkey 1,off
  if down_2
    send 2
return
down_1_2:
  send 3
  down_1:=0
return
down_2_1:
  send 4
  down_2:=0
return
</code></pre></div><p>Проблема в том, что у меня так нормально не работает - после первого же отключения хоткея одиночное нажатие клавиши перестает работать вообще.</p>]]></description>
			<author><![CDATA[null@example.com (ant_serg57)]]></author>
			<pubDate>Sat, 11 Jul 2026 01:39:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=163458#p163458</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74609#p74609</link>
			<description><![CDATA[<p>Почти как в том &quot;Ералаше&quot;: &quot;Я понял что они не пересекаются! Я не понял <strong>почему</strong> они не пересекаются!&quot;&nbsp; &nbsp;<br />&nbsp; Нажатие на &quot;-&quot; обращается к <br />Hotkey, %k1%, Label1<br />это строка обращается к <br />Hotkey, IF, State()<br />она в свою очередь запускает <br />State() <br />и получив ответ решает запускать Label1 или нет. Вроде понятно, но никогда в справке я ничего не видел по поводу необходимости завершения с помощью &quot;Hotkey, IF&quot;. По аналогии с #IF я догадываюсь зачем это нужно, но вот нигде этого не встречал.</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Thu, 15 Aug 2013 22:12:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74609#p74609</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74608#p74608</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>принцип работы всей комбинации из от &quot;#IF State&quot; до &quot;Hotkey, IF&quot; мне ясен постольку-поскольку.</p></blockquote></div><p>Я уже сам запутался. Всё понятно, или наоборот всё стало непонятно.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 15 Aug 2013 21:35:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74608#p74608</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74607#p74607</link>
			<description><![CDATA[<p>Вот так даже мне понятно получается:<br /></p><div class="codebox"><pre><code>
Global k1 := &quot;-&quot;
Global k2 := &quot;q&quot;

#IF State()
#IF
Hotkey, IF, State()
Hotkey, %k1%, Label1 
Hotkey, %k2%, Label2
Hotkey, IF
Return

State() {
    WinGetActiveTitle, Name
    IfInString, Name, Блокнот
        Return 1
    Return 0
}
    
Label1:
    {
    Send, {+}
    }
return
    
Label2:
    {
    Send, qwerty
    }
return    
</code></pre></div><p>&nbsp; &nbsp; &nbsp; &nbsp;Работает, компактно пишется, легко находится, хотя принцип работы всей комбинации из от &quot;#IF State&quot; до &quot;Hotkey, IF&quot; мне ясен постольку-поскольку. По крайней мере я никогда не догадался поставить между #if только функцию проверки, а все хоткеи заключить между &quot;Hotkey, IF&quot;</p><p>&nbsp; &nbsp;Спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Thu, 15 Aug 2013 21:30:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74607#p74607</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74605#p74605</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Что Вы имеете ввиду? Всё равно ведь под каждый хоткей надо создавать собственную, поскольку &quot;MyAction()&quot; для каждого своя.</p></blockquote></div><p>Я подумал что условие одно. Ну а какая кнопка, уже можно потом проверить. </p><p>АП. А в случае #if и проверять не надо.</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 15 Aug 2013 20:40:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74605#p74605</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74604#p74604</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Мне мои кривые 30 строк понятны и близки. Я понимаю, что их можно превратить в красивые 6-7</p></blockquote></div><p>Да боже упаси их трогать руками, я то про:<br /></p><div class="codebox"><pre><code>
Global Var := 1

#IF State()
#IF
Hotkey, IF, State()
Hotkey, 1, Hotkey ; Нажми 1 
Hotkey, IF
Return

State() {
    IF Var
        Return 1
    Return 0
}
    
Hotkey:
    MsgBox Нажал 1? Значит Var имеет значение.
</code></pre></div><p>а вы про что?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 15 Aug 2013 20:39:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74604#p74604</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74603#p74603</link>
			<description><![CDATA[<div class="quotebox"><cite>Ekklesiast пишет:</cite><blockquote><p><strong>Pokerist</strong>, а вы для какого рума пишите скрипт ? ))))</p></blockquote></div><p>&nbsp; Для собственного <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />))</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Thu, 15 Aug 2013 20:28:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74603#p74603</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74602#p74602</link>
			<description><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>И всё же в контексте вашего вопроса думаю что уместно привести и енто самое секретное условие срабатывания хоткея. Как, Вы считаете?</p></blockquote></div><p>&nbsp; Не стоит. Мне мои кривые 30 строк понятны и близки. Я понимаю, что их можно превратить в красивые 6-7, но через неделю я потрачу час чтобы понять что там и как. Главное, что они работают&nbsp; с устраивающей меня скоростью и дают нужный результат. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />&nbsp; Если бы сокращение процедуры влияло на возможность применения #if - тогда другое дело.</p><br /><div class="quotebox"><blockquote><p>Хоткеев много, а MyProc одна...</p></blockquote></div><p>&nbsp; Что Вы имеете ввиду? Всё равно ведь под каждый хоткей надо создавать собственную, поскольку &quot;MyAction()&quot; для каждого своя.</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Thu, 15 Aug 2013 20:26:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74602#p74602</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74590#p74590</link>
			<description><![CDATA[<p><strong>Pokerist</strong>, а вы для какого рума пишите скрипт ? ))))</p>]]></description>
			<author><![CDATA[null@example.com (Hydrogenium)]]></author>
			<pubDate>Thu, 15 Aug 2013 19:08:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74590#p74590</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74588#p74588</link>
			<description><![CDATA[<p>Хоткеев много, а MyProc одна...<br />И всё же в контексте вашего вопроса думаю что уместно привести и енто самое секретное условие срабатывания хоткея. Как, Вы считаете?</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 15 Aug 2013 18:53:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74588#p74588</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74585#p74585</link>
			<description><![CDATA[<p>Довольно заморочливо, особенно, если хоткеев много.</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Thu, 15 Aug 2013 18:49:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74585#p74585</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74584#p74584</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>целая процедура на 30 строк?</p></blockquote></div><p>Так вы приведите эти 30 строк, а там уже будет...</p>]]></description>
			<author><![CDATA[null@example.com (serzh82saratov)]]></author>
			<pubDate>Thu, 15 Aug 2013 18:45:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74584#p74584</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74581#p74581</link>
			<description><![CDATA[<div class="quotebox"><cite>Pokerist пишет:</cite><blockquote><p>Я уже применял #if для ограничения срабатывания горячей клавиши только в определённых окнах. <br /></p><div class="quotebox"><blockquote><p>Hotkey, IfWinActive/Exist [, WinTitle, WinText]</p></blockquote></div><p> тоже может выполнить эту функцию, но как поступить, если проверка на &quot;правильность&quot; заголовка окна - целая процедура на 30 строк?<br />&nbsp; Можно конечно постоянно перебирать все окна и хранить в памяти заголовки нужных, но мне кажется должен быть предусмотрен более простой способ.<br />&nbsp; Помогите, пожалуйста, им воспользоваться.<br />&nbsp; Заранее, спасибо!</p></blockquote></div><p>я делаю так:</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>MyKey = ~y

Hotkey, %MyKey%, MyProc

MyProc:   
    WinGet, active_id, ID, A         
    if WinActive(&quot;ahk_id&quot; active_id)
    {   
         if CheckWin() ; функция проверки окна
             MyAction() ;
    }
Return</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (Hydrogenium)]]></author>
			<pubDate>Thu, 15 Aug 2013 18:18:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74581#p74581</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Как применять #if,если хоткей  выполняется через метку?]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74580#p74580</link>
			<description><![CDATA[<p>Я уже применял #if для ограничения срабатывания горячей клавиши только в определённых окнах. <br /></p><div class="quotebox"><blockquote><p>Hotkey, IfWinActive/Exist [, WinTitle, WinText]</p></blockquote></div><p> тоже может выполнить эту функцию, но как поступить, если проверка на &quot;правильность&quot; заголовка окна - целая процедура на 30 строк?<br />&nbsp; Можно конечно постоянно перебирать все окна и хранить в памяти заголовки нужных, но мне кажется должен быть предусмотрен более простой способ.<br />&nbsp; Помогите, пожалуйста, им воспользоваться.<br />&nbsp; Заранее, спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (Pokerist)]]></author>
			<pubDate>Thu, 15 Aug 2013 18:08:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74580#p74580</guid>
		</item>
	</channel>
</rss>
