<?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=8834&amp;type=atom" />
	<updated>2013-10-29T12:07:56Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8834</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76658#p76658" />
			<content type="html"><![CDATA[<p>Нет, это не проблема, я так и сделал - я тему же поднимал по вставке в буфер обмена по конкретному сочетанию клавиш, а исходный скрипт просто запоминает буфер обмена в очередь с исключением повторения.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-29T12:07:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76658#p76658</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76651#p76651" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Indomito пишет:</cite><blockquote><p> + сканкоды ещё идут не последовательно, т.е. сканкод Num1 не самая меньшая - Num4=0x4b</p></blockquote></div><p>Это разве проблема? Трудно под каждым хоткеем написать что-то типа<br /></p><div class="codebox"><pre><code>
Index = 1    ; 2, 3, 4 и т.д.
</code></pre></div><p>?</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-10-29T11:36:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76651#p76651</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76644#p76644" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Хоткей срабатывает, а что при этом произойдёт, зависит от кода хоткея.</p></blockquote></div><p> ясно, спасибо.</p><div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>А при чём здесь 0xC? Numpad1, Numpad2 и т.д. Цифры же на конце.</p></blockquote></div><p> если написать<br /></p><div class="codebox"><pre><code>NumPad1::
; код
return</code></pre></div><p> то он сработает только при выключенном NumLock, а если написать </p><div class="codebox"><pre><code>sc4f::
; код
return</code></pre></div><p> он сработает всегда + сканкоды ещё идут не последовательно, т.е. сканкод Num1 не самая меньшая - Num4=0x4b</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-29T11:01:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76644#p76644</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76631#p76631" />
			<content type="html"><![CDATA[<p>Хоткей срабатывает, а что при этом произойдёт, зависит от кода хоткея.</p><p>А при чём здесь 0xC? Numpad1, Numpad2 и т.д. Цифры же на конце.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-10-29T09:37:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76631#p76631</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76627#p76627" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Про функцию АНК не понял. Что имеется в виду?</p></blockquote></div><p> т.е. если есть выделенный текст и я нажимаю Ctrl-Num1 то срабатывает нужный хоткей и текст в буфере обмена. Верно?</p><div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Почему фокус не пройдёт? Там же тоже цифра на конце.</p></blockquote></div><p> не такая же. Num1 = 0xC это разве 1?</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-29T09:08:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76627#p76627</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76625#p76625" />
			<content type="html"><![CDATA[<p>Вставку в буфер обмена реализует приложение, в окно которого вы посылаете Ctrl-C. Про функцию АНК не понял. Что имеется в виду?</p><p>Почему фокус не пройдёт? Там же тоже цифра на конце.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-10-29T08:58:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76625#p76625</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76623#p76623" />
			<content type="html"><![CDATA[<p>И еще Ctrl-C вставляет в буфер обмена выделенный текст, а какая функция в AHK это реализует?</p><div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Там отрезается последний символ от названия хоткея, т.е. 1 от F1, 2 от F2 и т.д. Так получаются индексы от 1 до 4.</p></blockquote></div><p> с NumPad такой <em>&quot;фокус&quot;</em> не пройдёт - надо будет исправить.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-29T08:03:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76623#p76623</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76622#p76622" />
			<content type="html"><![CDATA[<p>Там отрезается последний символ от названия хоткея, т.е. 1 от F1, 2 от F2 и т.д. Так получаются индексы от 1 до 4.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-10-29T08:00:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76622#p76622</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76621#p76621" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Ну, очевидно, по тому же принципу, как в скрипте выше. Берётся цифра с конца A_ThisHotkey и используется как индекс массива.</p></blockquote></div><p> Спасибо, попробую, может получится.<br />Кстати я не очень понял конструкцию <em>Clipboard := clipHistory<strong>[Index := SubStr(A_ThisHotkey,0)]</strong></em> ведь </p><div class="quotebox"><blockquote><p><strong>SubStr(String, StartingPos [, Length])</strong>&nbsp; Copies a substring from String starting at StartingPos and proceeding rightward to include at most Length characters... For example, <strong>0 extracts the last character</strong> and -1 extracts the two last characters.</p></blockquote></div><p> при нуле идёт один символ, а для F1 = 0xB, F1 = 0xC, етс, как они связаны с индексом? Когда же я просто заменил&nbsp; на NumPad скан-коды, из-за их двойных виртуальных кодов, то всё перестало работать.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-29T07:57:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76621#p76621</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76620#p76620" />
			<content type="html"><![CDATA[<p>Ну, очевидно, по тому же принципу, как в скрипте выше. Берётся цифра с конца A_ThisHotkey и используется как индекс массива. Комбинации с Ctrl копируют, а с Shift вставляют.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-10-29T07:25:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76620#p76620</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76619#p76619" />
			<content type="html"><![CDATA[<p>При нажатии на <strong>Ctrl-C</strong> содержимое попадает в массив по принципу очереди, с отслеживанием повторов. Я хочу, что бы содержимое попадало в конкретный элемент массива, т.е. на ту клавишу для вставки, которую я разрешил.</p><p>У меня, после переделки, задействован <strong>NumPad</strong> и массив состоит из 9-ти элементов, и надо что бы попадало туда, куда нужно не стирая то, что было ранее, если я не позволил.</p><p>Конечно, можно указать заранее, но хотелось бы сделать перехват - проблема в том,&nbsp; что вставка идёт не только клавиатурой, но и мышкой.</p><p>Может быть, стоит сделать так:<br />Вставка в буфер&nbsp; &nbsp; &nbsp;- <strong>Ctrl+NumPad1(NumPad9)</strong><br />Обратное действие - <strong>Shift+NumPad1(NumPad9)</strong><br />Остальное попадает в <strong>NumPad0</strong> по <strong>Ctrl+C</strong> или иным клавишам и мышке.</p><p>Как правильно реализовать функцию <strong>Ctrl+C</strong> по <strong>Ctrl+NumPad1(NumPad9)</strong> ?</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-29T07:15:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76619#p76619</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76616#p76616" />
			<content type="html"><![CDATA[<p>Прочитал вопрос 3 раза, но так и не понял. Кто может запихнуть? Что всё? В чём неопределённость комбинации? В чём должна заключаться конкретность клавиши?</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2013-10-29T06:18:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76616#p76616</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK:  Вставка в буфер обмена.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76613#p76613" />
			<content type="html"><![CDATA[<p>В своё время я у <strong>creature.ws</strong> &quot;утянул&quot; этот скрипт - </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>; Windows Vista+
; AHK-L
#SingleInstance Ignore
#KeyHistory 0
#NoEnv
#NoTrayIcon
OnExit, ExitSub
DllCall(&quot;AddClipboardFormatListener&quot;, &quot;Int&quot;, A_ScriptHwnd)
OnMessage(WM_CLIPBOARDUPDATE := 0x031D, &quot;ClipSave&quot;)
clipHistory := []

Esc &amp; F1::
Esc &amp; F2::
Esc &amp; F3::
Esc &amp; F4::
    Clipboard := clipHistory[Index := SubStr(A_ThisHotkey,0)]
    Controlgetfocus, FClassNN, A
    SendMessage, 0x302,,,%FClassNN%, A
    SendMessage, 0x8  ,,,%FClassNN%, A
    SendMessage, 0x7  ,,,%FClassNN%, A
Return

$Esc Up::Send {Blind}{Esc}
Return

ClipSave()
{
    global
    If (clipHistory[Index] = Clipboard)
        Return
    If !newIndex := clipHistory.MaxIndex()+1
        newIndex := 1
    If (newIndex &gt; 4)
        clipHistory.Remove(1), newIndex--
    clipHistory.Insert(newIndex, Clipboard)
    Return
}

ExitSub:
    DllCall(&quot;RemoveClipboardFormatListener&quot;, &quot;Int&quot;, A_ScriptHwnd)
    ExitApp
Return</code></pre></div></div></div><p> Немного его поправил и дополнил (исправил реализацию с очереди на дек), но возникла проблема при нажатии на Ctrl+C ,etc, т.е. все, что может запихнуть, в буфер обмена попадает на неопределённую комбинацию&nbsp; - на&nbsp; Esc+ F1, Esc+F2, Esc+F3 и Esc+F4.<br />Это можно как то победить, т.е. вставка происходила на конкретную клавишу (элемент массива)</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2013-10-29T05:44:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76613#p76613</id>
		</entry>
</feed>
