<?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=11356</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=11356&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Работа сценария в зависимости от нажатых клавиш».]]></description>
		<lastBuildDate>Sun, 29 May 2016 12:00:28 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Работа сценария в зависимости от нажатых клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=104383#p104383</link>
			<description><![CDATA[<p><strong>Alectric</strong>, Спасибо, работает! Однако решил пойти несколько иным путем, используя подсказки из других тем, чтобы иметь возможность добавлять различные условия для различных действий:</p><div class="codebox"><pre><code>/*
[Section]
Undo=2
[End]
*/ 

IniRead, Undo, %A_ScriptFullPath%, Section, Undo

2::
Send, 1
Send, 2
IniWrite, % (Undo := 2), % A_ScriptFullPath, Section, Undo
return

3::
Send, 1
Send, 2
Send, 3
IniWrite, % (Undo := 3), % A_ScriptFullPath, Section, Undo
return

^vk5A:: ; z
SendInput ^{vk5A %Undo%}
Return

</code></pre></div><p>Т.е. если сценарий выполнет внутри программы, например, три действия, то при отмене совершается отмена трех действий. Но часто после вызова сценария могут последовать стандартные единичные действия внутри программы, после которых отмена действия должна работать в привычном режиме.</p><p>Поэтому, необходимо добавить условие, при котором значение Undo сбрасывается на &quot;1&quot;, если после вызова сценария последовало нажатие любых клавиш, кроме: <em>f1, f2, f3,</em> Space, но не кроме <em>+f1</em>, <em>^f2</em> <em>!Space </em>и т.д. Также значение должно сбрасываться при удержании <em>ЛКМ </em>и <em>ПКМ </em>более чем на 0,1 сек., но не при обычном нажатии <em>ЛКМ</em>.</p><p>Помогите, пожалуйста, реализовать данное условие.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Sun, 29 May 2016 12:00:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=104383#p104383</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа сценария в зависимости от нажатых клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=101395#p101395</link>
			<description><![CDATA[<div class="codebox"><pre><code>#SingleInstance,Force

#InstallKeybdHook
SetFormat,IntegerFast,h ; устанавливаем формат чисел в HEX
starttime:=a_tickcount

; исключения
except=0x10`,0x11`,0x12`,0x70`,0x71`,0x72`,0x7A`,0x4D`,0x20 ; виртуальные коды клавиш, для исключения из списка
;     shift  ctrl  alt    f1    f2    f3   f11    m   Space

Loop,0x91 ; перечисляем все виртуальные коды
{
  if instr(except,A_Index) ; за исключением списка
    continue ; продолжаем, не выполняя последующие строки
  Hotkey,% &quot;~*vk&quot; . A_Index,Label,On ; добавляем горячую клавишу на метку Label
}
SetFormat,IntegerFast,d

Label:
a=1
return

^vk5A:: ; ^z
if a
  tooltip,1 ; send,^{vk5A}
else
  tooltip,2 ; send,^{vk5A 2}
return

~+F1::
~+F3::
tooltip,0
a=0
return

!esc::
exitapp

</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 24 Feb 2016 16:39:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=101395#p101395</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Работа сценария в зависимости от нажатых клавиш]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=101393#p101393</link>
			<description><![CDATA[<p>Необходимо назначить на нажатие сочентания клавиш <strong><span style="color: red">^{z}</span></strong> двойную команду Undo, т.е. <strong><span style="color: red">^{z 2}</span></strong>, но при условии, что перед этим было нажато сочетание клавиш <strong><span style="color: blue">+{f1}</span> </strong>или <strong><span style="color: blue">+{f3}</span></strong>, пропуская при этом ряд клавиш, а именно <span style="color: green"><strong>{f1}</strong>, <strong>{f2}</strong>, <strong>{f3}</strong>, <strong>{f11}</strong>, <strong>{m}</strong>, <strong>{Space}</strong></span>.</p><p>Т.е. если я, например, нажимаю на сочетание кавиш <strong><span style="color: blue">+{f3}</span></strong>, после чего нажимаю повторно одну клавишу <strong><span style="color: green">{f3}</span></strong>, либо не нажму ничего,&nbsp; то последующее нажатие на <strong><span style="color: red">^{z}</span></strong> вызовет двойной шаг назад. В любых других случаях Undo должен работать в привычном режиме.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Wed, 24 Feb 2016 12:34:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=101393#p101393</guid>
		</item>
	</channel>
</rss>
