<?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=17081&amp;type=atom" />
	<updated>2022-04-28T15:09:39Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=17081</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152934#p152934" />
			<content type="html"><![CDATA[<p><strong>__Михаил__</strong></p><p>Вы навели на мысль! InputHook() похоже поможет, сейчас попробую!</p>]]></content>
			<author>
				<name><![CDATA[eavolkov89]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33678</uri>
			</author>
			<updated>2022-04-28T15:09:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152934#p152934</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152933#p152933" />
			<content type="html"><![CDATA[<p>Модификаторы такая вещь - их лучше не трогать от греха подальше. Можно пробовать полный перехват клавиатуры, возможно что-то выйдет. В поиске ищите: &#039;Клавиатурный хук&#039; и т.д.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2022-04-28T15:06:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152933#p152933</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152932#p152932" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Я бы проще сделал: нажал некую клавишу - режим перехвата кнопок I, J, K, L включился, выполнил действия, снова нажал - перехват выключился.</p></blockquote></div><p>Идеально чтобы такой клавишей и был ALT <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Но я не знаю как технически в коде реализовать перехват, так чтобы ни винда ни другие программы не словили нажатие альта. Иначе они могут уходить в свои внутренние горячие клавиши...</p>]]></content>
			<author>
				<name><![CDATA[eavolkov89]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33678</uri>
			</author>
			<updated>2022-04-28T15:03:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152932#p152932</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152931#p152931" />
			<content type="html"><![CDATA[<p>Я бы проще сделал: нажал некую клавишу - режим перехвата кнопок I, J, K, L включился, выполнил действия, снова нажал - перехват выключился.</p>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2022-04-28T15:01:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152931#p152931</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152930#p152930" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Это ж надо было такое выдумать!</p></blockquote></div><p>Идеально это научиться перехватывать нажатие ALT, а сам скрипт сделать двух режимным, типа в режиме OFF ничего не происходит, все как обычно работает, а в режиме ON скрипт начинает перехватывать нажатие ALT, выполняет то что я в него запрограммирую, и главное - не отправляет нажатие ALT дальше в винду и программы, будто этого нажатия не происходило <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[eavolkov89]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33678</uri>
			</author>
			<updated>2022-04-28T15:00:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152930#p152930</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152929#p152929" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>__Михаил__ пишет:</cite><blockquote><p>Это ж надо было такое выдумать!</p></blockquote></div><p>Ну.. если вы про саму суть задачи, то не хочется переносить правую руку на стрелочки, бекспейсы, делейты, энтеры. Хочется чтобы руки оставались всегда на ФЫВА ОЛДЖ <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Для этого нужно зажимать что-то... были варианты с кнопками WIN и ALT, в итоге у WIN куча своих горячих виндовых сочетаний, а на ALT большинство программ вешает свои внутренние горячие клавиши, и либо надо снести их прямо во всех программах, и у некоторых есть прямо несносимые сочетания.. короче беда <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Перепрошил клаву так чтобы вместо альта был никому не нужный скролллок, но иногда оч нужен привычный альт, и внезапно понял что у меня по-умолчанию мышь чувствительна к скроллоку, меняет её режим работы и это никак не отключить в мышке. В общем одни беды <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[eavolkov89]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33678</uri>
			</author>
			<updated>2022-04-28T14:54:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152929#p152929</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152928#p152928" />
			<content type="html"><![CDATA[<p>Это ж надо было такое выдумать!<br /></p><div class="codebox"><pre><code>#If GetKeyState(&quot;ScrollLock&quot;) &amp;&amp; GetKeyState(&quot;LShift&quot;)

*I:: Send +{Up}
*J:: Send +{Left}
*L:: Send +{Right}
*K:: Send +{Down}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[__Михаил__]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40928</uri>
			</author>
			<updated>2022-04-28T14:51:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152928#p152928</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152927#p152927" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Phoenixxx_Czar пишет:</cite><blockquote><p>Так пробовали?<br /></p><div class="codebox"><pre><code>send, {LShift down}{up}{LShift up}</code></pre></div></blockquote></div><p>Не пробовал <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Спасибо!</p><p>Можно ещё вопросик пожалуйста! А есть ли в AHK возможность перехватывать нажатие кнопки? Если я нажимаю ALT, то большинство программ интерпретируют это как свои внутренние горячие клавиши, и дальше уже все что я нажму дополнительно, могут вообще не выполнять, например, окно программы становится неактивным для ввода, потому что перефокусируются на свое меню... ожидает что я в них буду ковыряться... А мне просто каретку надо передвинуть не уводя руку на обычные стрелочки.</p><p>Можно ли как-то сделать так, чтобы при нажатии ALT, срабатывало например LShift + Up, но при этом сам ALT как будто не нажимался для все остальных программ, кроме AHK ?</p><p>Именно из-за того что альт используется большинством программ, пришлось перешивать клавиатуру, чтобы на этой кнопке был скроллок, но это приводит к ряду других проблем... часто нужен и альт на своем привычном месте(((</p>]]></content>
			<author>
				<name><![CDATA[eavolkov89]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33678</uri>
			</author>
			<updated>2022-04-28T14:50:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152927#p152927</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152926#p152926" />
			<content type="html"><![CDATA[<p>Так пробовали?<br /></p><div class="codebox"><pre><code>send, {LShift down}{up}{LShift up}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Phoenixxx_Czar]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34426</uri>
			</author>
			<updated>2022-04-28T14:05:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152926#p152926</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: тройные горячие клавиши]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=152925#p152925" />
			<content type="html"><![CDATA[<p>Привет формучане!</p><p>Если по короче, то понимаю что в AHK нельзя использовать тройные горячие клавиши, если как минимум 2 из них не являются контролами, шифтами, альтами и т.д., а состоят из обычных кнопок.</p><p>Загуглив нашел 2 варианта обхода этого недостатка AHK, 1 вариант:</p><div class="codebox"><pre><code>
#if GetKeyState(&quot;ScrollLock&quot;) &amp;&amp; GetKeyState(&quot;LShift&quot;)
i:: send {LShift Up}
j:: send {LShift Left}
l:: send {LShift Right}
k:: send {LShift Down}
return
</code></pre></div><p>В этом случае не срабатывает сама горячая связка клавиш. Мне нужно чтобы происходили перемещения каретки с выделением текста, т.е. эмулировались сочетания Shift + Up, Shift + Left и так далее. Вместо этого просто печатаются заглавные буквы I J K...</p><p>Второй вариант:<br /></p><div class="codebox"><pre><code>
#if GetKeyState(&quot;ScrollLock&quot;)
+i:: send {LShift Up}
+j:: send {LShift Left}
+l:: send {LShift Right}
+k:: send {LShift Down}
return
</code></pre></div><p>Тут я зажатие шифта переношу из if условия, в тело условия. В итоге вообще ничего не происходит, каретка стоит на одном месте как вкопанная.</p><p>Помогите пожалуйста понять что я делаю не так. На всякий случай повторюсь, нужно чтобы при зажатии клавиш ScrollLock + Shift + буквы (например i, j, l, k), моя каретка бегала по тексту как будто я нажимаю вместо букв стрелочки, и с зажатым шифтом, т.е. выделяла текст.</p><p>Мне кажется ошибка в синтаксисе команды send, пробовал по всякому обозначать требуемые сенды, но ни один вариант не срабатывал. Помогите, пожалуйста!</p>]]></content>
			<author>
				<name><![CDATA[eavolkov89]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33678</uri>
			</author>
			<updated>2022-04-28T13:46:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=152925#p152925</id>
		</entry>
</feed>
