<?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=16853</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16853&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Передать имя клавиши через переменную».]]></description>
		<lastBuildDate>Tue, 28 Dec 2021 21:05:10 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151443#p151443</link>
			<description><![CDATA[<p><strong>__Михаил__</strong> Да, я уже понял что дело тут в не понимании синтаксиса, потому что, оказывается так работает:<br /></p><div class="codebox"><pre><code>+sc20::
	variable = sc20
	KeyAction(variable)
Return</code></pre></div><p>Или если <strong>variable = sc20</strong> поместить в начале файла, тоже работает.</p><br /><p>В общем, спасибо ещё раз за помощь. Пойду документацию читать.</p>]]></description>
			<author><![CDATA[null@example.com (SeamenValcz)]]></author>
			<pubDate>Tue, 28 Dec 2021 21:05:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151443#p151443</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151442#p151442</link>
			<description><![CDATA[<p>Изучите азы - секция автовыполнения и &#039;Return&#039;.</p>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Tue, 28 Dec 2021 20:44:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151442#p151442</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151441#p151441</link>
			<description><![CDATA[<p><strong>__Михаил__</strong>, человек просто пытается понять как работают функции, а вы ему тут матрёшку предлагаете. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Taveron)]]></author>
			<pubDate>Tue, 28 Dec 2021 20:43:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151441#p151441</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151440#p151440</link>
			<description><![CDATA[<p><strong>Taveron</strong></p><div class="quotebox"><blockquote><p>Первый вариант работает, просто добавьте функцию.</p></blockquote></div><p>Странно, в моём коде не работало, в новом файле работало. Начал разбираться почему, оказалось потому что в начале моего файла есть:<br /></p><div class="codebox"><pre><code>;Убирает окно tooltip
RemoveToolTip:
	ToolTip
Return</code></pre></div><p>Которую я взял из документации. Передвинул этот блок в самый низ файла всё заработало. Теперь сомневаюсь что такой способ убирать окно tooltip правильный.</p><br /><p><strong>__Михаил__</strong><br />Спасибо, интересный вариант на изучение!</p>]]></description>
			<author><![CDATA[null@example.com (SeamenValcz)]]></author>
			<pubDate>Tue, 28 Dec 2021 20:43:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151440#p151440</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151439#p151439</link>
			<description><![CDATA[<p>Может проще сразу отправлять текущую клавишу:</p><div class="codebox"><pre><code>+sc20::KeyAction2(SubStr(A_ThisHotkey,2))	; Shift + D
+sc1F::KeyAction2(SubStr(A_ThisHotkey,2))	; Shift + S

KeyAction2(k) {
 Send, +{%k%}
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (__Михаил__)]]></author>
			<pubDate>Tue, 28 Dec 2021 20:35:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151439#p151439</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151438#p151438</link>
			<description><![CDATA[<p>Первый вариант работает, просто добавьте функцию.<br /></p><div class="codebox"><pre><code>
variable = sc20

+sc20::KeyAction(variable)

KeyAction(keycode) {
	Send, +{%keycode%}
}
</code></pre></div><p>Почитайте о функциях в справке <a href="https://www.autohotkey.com/docs/Functions.htm">eng</a> или <a href="https://ahk-wiki.ru/functions">ru</a>.</p>]]></description>
			<author><![CDATA[null@example.com (Taveron)]]></author>
			<pubDate>Tue, 28 Dec 2021 20:17:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151438#p151438</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151437#p151437</link>
			<description><![CDATA[<div class="quotebox"><cite>Taveron пишет:</cite><blockquote><div class="codebox"><pre><code>
+sc20::KeyAction(&quot;sc20&quot;)

KeyAction(keycode) {
	Send, +{%keycode%}
}
</code></pre></div></blockquote></div><p>Да, точно, <strong>KeyAction(&quot;sc20&quot;)</strong> Нужны были кавычки! Я без них пробовал не работало. Спасибо.</p><p>В принципе, именно так мне и нужно, так оно и будет работать. Но появился ещё один вопрос на засыпку, чисто в образовательных целях.<br />Вот так работать не будет:</p><div class="codebox"><pre><code>variable = sc20
+sc20::KeyAction(variable)</code></pre></div><p>и так</p><div class="codebox"><pre><code>variable = sc20
+sc20::KeyAction(%variable%)</code></pre></div><p>и так</p><div class="codebox"><pre><code>variable = &quot;sc20&quot;
+sc20::KeyAction(%variable%)</code></pre></div><p>Немного не пойму синтаксис, хотя я ещё только начал изучать AHK, даже до темы функций не дошёл. В передаче аргументов нельзя использовать выражения а <strong>%variable%</strong> это выражение?</p>]]></description>
			<author><![CDATA[null@example.com (SeamenValcz)]]></author>
			<pubDate>Tue, 28 Dec 2021 20:05:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151437#p151437</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151435#p151435</link>
			<description><![CDATA[<div class="codebox"><pre><code>
+sc20::KeyAction(&quot;sc20&quot;)

KeyAction(keycode) {
	Send, +{%keycode%}
}
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Taveron)]]></author>
			<pubDate>Tue, 28 Dec 2021 19:26:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151435#p151435</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Передать имя клавиши через переменную]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=151432#p151432</link>
			<description><![CDATA[<p>Есть у меня код в котором много повторения, хочу избавится от этого индусского кода, обернув его повторения в функцию, но там нужно клавишу посылать типа: Send, +{sc20}, и я не знаю как тут быть.<br />Для наглядности, вот кусок повторения.<br /></p><div class="codebox"><pre><code>; Shift+A
+sc1E::
	if GetKeyState(&quot;RShift&quot;) {
		Send, +{sc1E}
		Return
	}
	MouseGetPos, MouseX, MouseY
	ClickOnButton(ApproachCoordX, ApproachCoordY)
	MouseMoveTo(MouseX, MouseY)
Return

; Shift+S
+sc1F::
	if GetKeyState(&quot;RShift&quot;) {
		Send, +{sc1F}
		Return
	}
	MouseGetPos, MouseX, MouseY
	ClickOnButton(WarpCoordX, ApproachCoordY)
	MouseMoveTo(MouseX, MouseY)
Return

; Shift+D
+sc20::
	if GetKeyState(&quot;RShift&quot;) {
		Send, +{sc20}
		Return
	}
	MouseGetPos, MouseX, MouseY
	ClickOnButton(JumpCoordX, ApproachCoordY)
	MouseMoveTo(MouseX, MouseY)
Return</code></pre></div><p>А нужно сделать что-то вроде:<br /></p><div class="codebox"><pre><code>KeyAction(keycode, X, Y) {
	if GetKeyState(&quot;RShift&quot;) {
		Send, +{keycode}
		Return
	}
	MouseGetPos, MouseX, MouseY
	ClickOnButton(X, Y)
	MouseMoveTo(MouseX, MouseY)
}

; Shift+A
+sc1E::
	KeyAction(sc1E, ApproachCoordX, ApproachCoordY)
Return

; Shift+S
+sc1F::
	KeyAction(sc1F, WarpCoordX, ApproachCoordY)
Return

; Shift+D
+sc20::
	KeyAction(sc20, JumpCoordX, ApproachCoordY)
Return</code></pre></div><p>Подскажите пожалуйста, как можно это сделать.</p>]]></description>
			<author><![CDATA[null@example.com (SeamenValcz)]]></author>
			<pubDate>Tue, 28 Dec 2021 18:48:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=151432#p151432</guid>
		</item>
	</channel>
</rss>
