<?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=16853&amp;type=atom" />
	<updated>2021-12-28T21:05:10Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16853</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151443#p151443" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[SeamenValcz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42248</uri>
			</author>
			<updated>2021-12-28T21:05:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151443#p151443</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151442#p151442" />
			<content type="html"><![CDATA[<p>Изучите азы - секция автовыполнения и &#039;Return&#039;.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-28T20:44:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151442#p151442</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151441#p151441" />
			<content type="html"><![CDATA[<p><strong>__Михаил__</strong>, человек просто пытается понять как работают функции, а вы ему тут матрёшку предлагаете. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Taveron]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41949</uri>
			</author>
			<updated>2021-12-28T20:43:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151441#p151441</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151440#p151440" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[SeamenValcz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42248</uri>
			</author>
			<updated>2021-12-28T20:43:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151440#p151440</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151439#p151439" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2021-12-28T20:35:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151439#p151439</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151438#p151438" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Taveron]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41949</uri>
			</author>
			<updated>2021-12-28T20:17:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151438#p151438</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151437#p151437" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[SeamenValcz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42248</uri>
			</author>
			<updated>2021-12-28T20:05:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151437#p151437</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151435#p151435" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>
+sc20::KeyAction(&quot;sc20&quot;)

KeyAction(keycode) {
	Send, +{%keycode%}
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Taveron]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=41949</uri>
			</author>
			<updated>2021-12-28T19:26:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151435#p151435</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Передать имя клавиши через переменную]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=151432#p151432" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[SeamenValcz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=42248</uri>
			</author>
			<updated>2021-12-28T18:48:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=151432#p151432</id>
		</entry>
</feed>
