Автоподстановка +^<::^( и +^>::^+! Topic is solved

Помощь в написании скриптов
AlexLF
Posts: 6
Joined: 07 Jul 2019, 14:17

Автоподстановка +^<::^( и +^>::^+!

Post by AlexLF » 31 May 2021, 16:00

Хочу для Ворда сделать, чтобы шрифт уменьшался / увеличивался по Ctrl+Shift+< и Ctrl+Shift+>

#IfWinActive, ahk_exe WinWord.exe
+^<::^( ; Уменьшить шрифт
+^>::^+! ; Увеличить шрифт

Она мне пишет, в русской раскладке:
The hothey *+^< will not be active because it does not exist in the current keyboard layout.
Иногда и это:
The hothey *+^> will not be active because it does not exist in the current keyboard layout.

В английской ничего не пишет.

Увеличение шрифта иногда работает, уменьшение просто не работает.

И что делать, чтобы заработало?
mcl
Posts: 357
Joined: 04 May 2018, 16:35

Re: Автоподстановка +^<::^( и +^>::^+!

Post by mcl » 31 May 2021, 18:05

Во-первых, символы <> присутствуют только в английской раскладке и только в верхнем регистре (без Shift эти клавиши дают символы ,., а в русской раскладке − буквы БЮ). Во-вторых, что не менее важно, символы <> могут быть модификаторами для указания левой/правой кнопки для парных клавиш (например, <+ − левый Shift).

Поэтому, для устранения разночтений и возможных проблем, для хоткеев с большинством буквенных клавиш я бы рекомендовал использовать скан-коды. Попробуйте так:

Code: Select all

+^SC033::+^9   ; Ctrl+Shift+< - уменьшить шрифт
+^SC034::+^0   ; Ctrl+Shift+> - увеличить шрифт
P.S. У меня подобное сообщение не появляется ни в русской, ни в английской раскладке. Какая у вас версия AHK?
P.P.S. Странно, что в справке Word уже указаны именно эти комбинации клавиш для изменения размер шрифта, но при этом они не работают. Рабочие же комбинации Ctrl+Shift+9Ctrl+Shift+0 там отсутствуют. Есть ещё комбинации Ctrl+[Ctrl+], но их действие немного отличается.
github://oGDIp - GDI+ wrapper for AHK v1.1
AlexLF
Posts: 6
Joined: 07 Jul 2019, 14:17

Re: Автоподстановка +^<::^( и +^>::^+!

Post by AlexLF » 01 Jun 2021, 07:55

mcl wrote:
31 May 2021, 18:05
Во-первых, символы <> присутствуют только в английской раскладке и только в верхнем регистре (без Shift эти клавиши дают символы ,., а в русской раскладке − буквы БЮ). Во-вторых, что не менее важно, символы <> могут быть модификаторами для указания левой/правой кнопки для парных клавиш (например, <+ − левый Shift).

Поэтому, для устранения разночтений и возможных проблем, для хоткеев с большинством буквенных клавиш я бы рекомендовал использовать скан-коды. Попробуйте так:

Code: Select all

+^SC033::+^9   ; Ctrl+Shift+< - уменьшить шрифт
+^SC034::+^0   ; Ctrl+Shift+> - увеличить шрифт
P.S. У меня подобное сообщение не появляется ни в русской, ни в английской раскладке. Какая у вас версия AHK?
P.P.S. Странно, что в справке Word уже указаны именно эти комбинации клавиш для изменения размер шрифта, но при этом они не работают. Рабочие же комбинации Ctrl+Shift+9Ctrl+Shift+0 там отсутствуют. Есть ещё комбинации Ctrl+[Ctrl+], но их действие немного отличается.
Со скан-кодами работает без сообщения, но только увеличение шрифта.

Странно, но Ctrl+Shift+( на уменьшение шрифта - то работает, то не работает. Причем, если и работает, то нужно выделить слово, просто когда стоит курсор - не работает.
Может быть, дело в том, что у меня на Ctrl-Shift привязана смена раскладки клавиатуры? (Поменял на Alt+Shift - ничего не поменялось.) (Punto Switcher тоже стоит - но его отключение ничего не меняет.)

Мне кажется, дело в левой части. Где найти скан-коды? А то везде про них говорят разное.
Странно, но обе комбинации не работают даже с безобидной +F3.
+^SC034::+F3
+^SC033::+F3

Версию скачал и поставил сейчас последнюю.
Word у меня 2010.
mcl
Posts: 357
Joined: 04 May 2018, 16:35

Re: Автоподстановка +^<::^( и +^>::^+!  Topic is solved

Post by mcl » 01 Jun 2021, 11:25

AlexLF wrote:
01 Jun 2021, 07:55
Со скан-кодами работает без сообщения, но только увеличение шрифта.
Странно, но Ctrl+Shift+( на уменьшение шрифта - то работает, то не работает. Причем, если и работает, то нужно выделить слово, просто когда стоит курсор - не работает.
Мне кажется, дело в левой части. Где найти скан-коды? А то везде про них говорят разное.
Действительно странно. Win7, AHK последний, Word 2007.

Посмотреть скан-коды, а также историю нажатых клавиш, можно в главном окне AHK: двойной щелчок или ПКМ→Open по иконке AHK в трее, в открывшемся окне меню View → Key history and script info. Там будут указаны VK-коды и SC-коды для последних нажатых клавиш.
Как это выглядит у меня

Странно, но обе комбинации не работают даже с безобидной +F3.

Code: Select all

+^SC034::+F3
+^SC033::+F3
У меня работают, если писать более явно:

Code: Select all

+^SC033::Send +{F3}
+^SC034::Send +{F3}
Судя по логу истории клавиш, первый код использует более простой вариант ремапа клавиш и не отпускает Ctrl − в итоге получается нажатие Ctrl+Shift+F3, которое, само собой, ничего не делает. Можете попробовать, работает ли Send-синтаксис и для изменения шрифта.

P.S. Предположу всё же, что какая-то программа ранее заявила свои права на это сочетание клавиш, чем и вызван конфликт. Мне в своё время из-за такого приходилось прибивать процессы GeForce Expirience/AMD Catalyst.
github://oGDIp - GDI+ wrapper for AHK v1.1
AlexLF
Posts: 6
Joined: 07 Jul 2019, 14:17

Re: Автоподстановка +^<::^( и +^>::^+!

Post by AlexLF » 02 Jun 2021, 06:15

Да, с Send у меня +F3 заработал, обе комбинации.
mcl wrote:
01 Jun 2021, 11:25
Как это выглядит у меня
У меня для тех же действий так:
Spoiler
mcl wrote:
01 Jun 2021, 11:25
P.S. Предположу всё же, что какая-то программа ранее заявила свои права на это сочетание клавиш, чем и вызван конфликт. Мне в своё время из-за такого приходилось прибивать процессы GeForce Expirience/AMD Catalyst.
Нет, вряд ли. Та же самая история, если очистить файл и оставить только команды для Ворда.
AlexLF
Posts: 6
Joined: 07 Jul 2019, 14:17

Re: Автоподстановка +^<::^( и +^>::^+!

Post by AlexLF » 02 Jun 2021, 07:23

О, вот так заработало, с Send:

+^SC034::Send ^+{!} ; Ctrl+Shift+> - увеличить шрифт
+^SC033::Send ^+{(} ; Ctrl+Shift+< - уменьшить шрифт

Спасибо.
Post Reply

Return to “Помощь”