1

Тема: AHK: Причины разного действия скрипта в разных приложениях

Когда-то перелопатил кучу менеджеров буфера обмена, но так и не подобрал подходящего. Везде уйма не нужного мне функционала и пальцеломательные хоткеи. А моих желаний всего-то - копирование вместо одного 2-3 фрагментов и максимально близкие к привычным хоткеи. И вот на хз каком году использования АНК меня осенило, что это можно сделать самому.
Ну и сделал.

^C::
Send ^C
Clipboard_2 ?     Clipboard_3 := Clipboard_2
Clipboard_1 ?     Clipboard_2 := Clipboard_1
Clipboard_1 := Clipboard
Return

^V::
Count++
If Count = 1
    SetTimer, Sub, -500
If Count = 3
    GoSub, Sub
Return

Sub:
SetTimer, Sub, Off
Count != 1 ? Clipboard := Clipboard_%Count%
Send ^V
Count != 1 ? Clipboard := Clipboard_1
Count :=
Return

Полагаю, разобраться нетрудно - при копировании в буфер два предыдущих его значения резервируются и вставляются  по двойному/тройному Ctrl+V.
В блокноте все работает чУдно, как и хотелось бы. Но в других приложениях происходит всякая неведомая хрень, только не копирование по Ctrl+С.
Кабы нигде не работало - стал бы Send курить...

2

Re: AHK: Причины разного действия скрипта в разных приложениях

http://forum.script-coding.com/viewtopi … 543#p62543

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Причины разного действия скрипта в разных приложениях

О, нет-нет, про раскладку я в курсе. Раскладка по-умолчанию английская. Но сканкоды попробую сейчас.

4

Re: AHK: Причины разного действия скрипта в разных приложениях

Со скан-кодами началась еще более лютая хрень. Не для ночного бдения изыскания...

5

Re: AHK: Причины разного действия скрипта в разных приложениях

На трезвую дневную голову все оказалось просто (вроде бы).


#UseHook, On

^vk43::
Send ^{vk43}
Clipboard_2 ?     Clipboard_3 := Clipboard_2
Clipboard_1 ?     Clipboard_2 := Clipboard_1
Clipboard_1 := Clipboard
Return

^vk56::
Count++
If Count = 1
    SetTimer, Sub, -500
If Count = 3
    GoSub, Sub
Return

Sub:
SetTimer, Sub, Off
Count != 1 ? Clipboard := Clipboard_%Count%
Send ^{vk56}
Count != 1 ? Clipboard := Clipboard_1
Count :=
Return

Изначально не учел самопосыл.
Теперь вроде везде работает как надо.
Вопрос аксакалам: есть ли какие подводные камни у этого кода? Опыт показывает, что простота чаще всего чревата...