1 (изменено: stealzy, 2015-01-06 17:18:44)

Тема: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Часто приходится добавлять горячие клавиши в скрипты.
Иногда это буквенные клавиши, а поскольку используются 2 раскладки, хочется чтобы хоткей работал при любой.
Приходится писать виртуальные коды, например vk43:: вместо с::.
Раньше запускал отдельную программу для определения этих кодов, теперь, чтобы не отвлекаться, сочинил автозамену:
Пишем "{буква или имя клавиши на английском} vk@",
например "+^g vk@" → получаем →

+^vk47:: ;g
    
return

Код:


LetterCode := Object()

    Letters = q,w,e,r,t,y,u,i,o,p,[,],            a,s,d,f,g,h,j,k,l,`;,',\,            z,x,c,v,b,n,m,`,.,/,            tab,shift,    ctrl,alt, CapsLock, Caps, space, win, WinKey, AppsKey, 0,1,2,3,4,5,6,7,8,9,             F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,        ``, Esc, leftbackslash, Pgup,Pgdn,end,home, Left,Up,Right,Down, Enter, BackSpace, NumLock, Pause, Ins, Insert, Del, Delete
    vkCodes = 51,57,45,52,54,59,55,49,4f,50,db,dd,41,53,44,46,47,48,4a,4b,4c,ba,de,dc,5a,58,43,56,42,4e,4d,bc,be,bf,    9,    10,        11,     12,     14,     14,     20,     5b,     5b, 5d,        30,31,32,33,34,35,36,37,38,39,    70,71,72,73,74,75,76,77,78,79,7a,7b,        c0, 1b, e2,                21,22,23,24,         25,26,27,28,        hd,        h8,            90,        13,   2d,     2d,    2e,    2e
    Loop, parse, Letters, `, , %A_Space%%A_Tab%
    {
        LetterCode[A_Index, 1]:=A_LoopField
    }
    Loop, parse, vkCodes, `, , %A_Space%%A_Tab%
    {
        LetterCode[A_Index, 2]:=A_LoopField
        lenghArray:=A_Index
    }
Return

::vk@::
    ClipSaved:=Clipboard
    WinGetClass, class, A
    if (class="Notepad")
    SendInput {BackSpace}{Shift Down}{Left}{Shift Up}^{vk43}
    else
    SendInput {BackSpace}{Shift Down}^{Left}{Shift Up}^{vk43}
    Sleep 50
    if (ClipSaved=Clipboard) {
      MsgBox Буква не скопировалась
      return
    }
    KeyLetter:=Clipboard
    Clipboard:=ClipSaved
    if KeyVK:=vk(KeyLetter, lenghArray, LetterCode)
      SendInput vk%KeyVK%::{Space}`;{Space}%KeyLetter%`n`nreturn{Left}{Up}{Tab}
return

vk(KeyLetter, lenghArray, LetterCode) {
    Loop, %lenghArray%
    {
        if (KeyLetter=LetterCode[A_Index, 1])
            Return Key:=LetterCode[A_Index, 2]
    }
    Return
}
0xFFFFFF
0xFF0000
0xFFFFFF

2 (изменено: Alectric, 2015-01-06 09:10:13)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Неплохо было бы, если бы добавлялся комментарий (модификаторы - необязательно):

+^vk47:: ; Shift+Ctrl+G
    
return
Win 7 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

3 (изменено: stealzy, 2015-01-06 12:18:28)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Комментарий добавлен. Модификаторы придется запомнить, эт все ж не для простого пользователя скрипт:). Для простого serzh82saratov сделал ГПИ.
----------------------------------------------

Кстати, интересно в каких редакторах народ пишет скрипты?
У меня есть еще автозамены для NotePad++(Scintilla), выкладывать?

0xFFFFFF
0xFF0000
0xFFFFFF

4

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Пишу

+^g vk@ 

получаю

vk Unknown::: ; 
    

По простоте и надёжности я бы отдал предпочтение этому скрипту.

5 (изменено: stealzy, 2015-01-06 13:34:13)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

О, спасибо, все уже придумано до нас оказывается.

Работоспособность проверял в NP++ и Sublime.
У вас в буфер обмена ничего не попало, поэтому и пишет Unknown.
Добавил проверку на изменение буфера обмена.
Поделитесь, в каком редакторе проверяли, и работает ли в нем выделение по Ctrl+Shift+Left?

0xFFFFFF
0xFF0000
0xFFFFFF

6

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Проверяю в обычном Блокноте.
Сейчас вообще какие-то глюки пошли. Пишу в Блокноте

+^V vk@ 

Получаю перенос строки и табуляцию.


Пишу в Mozilla Firefox (сообщение на форуме)

+^V vk@ 

Получаю

+^vk56:: ; v
return

То есть какие-то нелады с буфером. Предлагаю доработать вариант от YMP.

7 (изменено: stealzy, 2015-01-06 13:56:37)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Поправил.
Оказалось, что простой Блокнот по Ctrl+Shift+Left Выделяет ":+g" полностью, не считая знаки +, ^ разделителями текста.
В браузерах или других редакторах все ок.

Вы правда пишете код в notepad.exe(0_o)?

0xFFFFFF
0xFF0000
0xFFFFFF

8 (изменено: ypppu, 2015-01-06 14:34:47)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Теперь вообще не преобразует в Блокноте.
Пишу

+^V vk@ 

Получаю

^+V

Да

9 (изменено: stealzy, 2015-01-06 14:39:40)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Специально для вас - в строке

Send {BackSpace}{Shift Down}^{Left}{Shift Up}^{vk43}

уберите ^
не будет определяться имена клавиш, типа space или F1, но они и не нужны, вобщем.

0xFFFFFF
0xFF0000
0xFFFFFF

10

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Пишу

+^V vk@ 

Получаю

+^c

Вылезает сообщение "Буква не скопировалась"

В буфере при этом остаётся

    Send {BackSpace}{Shift Down}^{Left}{Shift Up}^{vk43}

Может всё-таки просто доработать скрипт от YMP?

Специально для вас

Тогда в описании скрипта нужно добавить пояснение для пользователей Блокнота.

11 (изменено: stealzy, 2015-01-06 14:58:47)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Простите, забыл, что метод Send посылает сочетания клавиш через пень-колоду.
Добавил исключение для блокнота.
Попробуйте сейчас.

0xFFFFFF
0xFF0000
0xFFFFFF

12

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Как быть с цифрами?

^#5 vk@ 

даёт

^#5vk4b:: ; k
    
return

И как быть с NumPad-клавишами?

13 (изменено: Indomito, 2015-01-06 15:29:15)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

stealzy не очень понял, но я только проснулся после работы

Мне бы по сути.... да и многим нужно, может быть - нажал и получил в буфере обмена, нечто подобное:
vkXX scXX ; клавиша, если такая записывается просто
т.е.

vk41 sc1E ;A =  vkCode:0x41 scCode:0x1E

Максимизировать автоматизацию не нужно, а то потом "концов не найдёшь"

P.S. Я пользуюсь скриптом 

+ VkScCode_64.ahk

;-----Инициализация
; Скрипт не выгружается
#Persistent
; Запрет повторного запуска
#SingleInstance

hHookKeybd := DllCall("SetWindowsHookEx"
  , Int, WH_KEYBOARD_LL := 13
  , Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
  , Ptr, DllCall("GetModuleHandle", UInt, 0, "Ptr")
  , UInt, 0, "Ptr")
Return

^#ESC::
  ToolTip
ExitApp 

LowLevelKeyboardProc(nCode, wParam, lParam)
    {
      Critical
      SetFormat, Integer, H
      ToolTip, % wParam . "| vkCode: " . NumGet(lParam+0, 0, "UInt") . " scCode: " . NumGet(lParam+0, 4, "UInt")
                        . " Extended: " . NumGet(lParam+0, 8, "UInt") & 1 . " Time: " . NumGet(lParam+0, 12, "UInt")
      Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
    }
return

Но у меня не получается заменить ToolTip на запись куда либо, кроме вывода на экран - может кто подскажет готовое решение или подскажет как занести  данные в Буфер Обмена, а?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

14 (изменено: stealzy, 2015-01-06 16:37:55)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

yuppu, 1) не сработал бекспейс, изменил SendPlay на SendInput. Забавно, что у меня работает любой метод отправки, а у вас - нет.
           2)Вы правы, нумпад не определить, просто у меня его нет, так что меня устраивает и так  . Вы ведь сами предлагали вариант от YMP.

Indomito, то, как вы хотите выложено YMP_это_ссылка_сюда _можно_тыкать
по сочетанию Esc+клавиша.
Или это не то?

0xFFFFFF
0xFF0000
0xFFFFFF

15

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

stealzy пишет:

Indomito, то, как вы хотите сделано YMP
по сочетанию Esc+клавиша.
Или это не то?

сек... проверю

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

16

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

stealzy мой так не работает... ты про какой скрипт говорил то, т.е. дай линк... я хоть гляну.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

17

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Поправлюсь, выше я дал ссылку на код: автор F1-12, а поместил в Коллекцию YMP.

18 (изменено: Indomito, 2015-01-06 15:53:58)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

ypppu пишет:

Поправлюсь, выше я дал ссылку на код: автор F1-12, а поместил в Коллекцию YMP.

почти то что нужно, но

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

... а как же всё остальное?

Просо мне нужно всё, т.е. все клавиши и VK и SC -  иногда возникают проблемы.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

19

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Indomito, доработайте код F1-12. Будет реально полезная штука для новичков и не только.

20 (изменено: Indomito, 2015-01-06 16:28:16)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

ypppu я бы доделал, но нужен инструмент для получения всех кодов - я пока смотрю на экран и ввожу, так что как доделаю скрип то сделаю.

А авторство скрипта VkScCode_64.ahk чьё?
Он раньше назывался VkScCode.ahk(кажется, но не уверен)
Правда я его немного поправил и доработал

P.S. Конечно можно всё сделать обычным КопиПасте, но проще иметь один универсальный скрипт (в рамках разумного)

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

21

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Indomito пишет:

а как же всё остальное?

Просо мне нужно всё, т.е. все клавиши и VK и SC -  иногда возникают проблемы.

В той теме коды используются для клавиш, которые меняют имена при смене раскладки. Именно эта проблема и решается. Правда, для цифр это излишне. А все клавиши — зачем?

22 (изменено: stealzy, 2015-01-06 17:16:31)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

+YMP
Тема называется "Удобное добавление горячих клавиш в скрипт",
Что мой код(автозаменой), что код F1-12(хоткеем), решают эту проблему.
Добавлены даже избыточные клавиши, не меняющиеся с раскладкой.
Правда, мой вариант не различает клавиши цифрого блока.

0xFFFFFF
0xFF0000
0xFFFFFF

23

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

YMP просто мне иногда требуется.... может я исключение

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

24

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Indomito пишет:

YMP просто мне иногда требуется.... может я исключение

В смысле, душа просит, а зачем — не знаю?

25 (изменено: Indomito, 2015-01-06 18:05:08)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

YMP дело не в душе, дело в NumPad-кнопках

У них SC разное, а VK одинаковое  — в зависимости от режима NumPad + у меня клавиатура  с 7-ю режимами и надо как то это отлавливать, но это уже моё дело и я с этим разобрался.

Так что это не ради прикола

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

26

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Indomito пишет:

но это уже моё дело и я с этим разобрался.

Не у вас же одного такая клавиатура. Или это что-то уникальное, сделанное на заказ? И мастер поклялся, что ни в коем разе не будет делать подобного?

27 (изменено: Indomito, 2015-01-06 18:34:27)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Ну конечне не у меня одного(она не уникальная ), но моё решение понравится единицам... надо доп.скрипт писать на LUA, а вот NumPAD работает одинаково - 7 штук клавиатур проверил, правда все под Win 7 x64 Ult

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

28

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Indomito так что именно нужно?
В том коде в котором хук, правильно определять имена клавиш по кодам?
Или из AutoHotkey-имён клавиш получить VK SC код, что навряд ли может потребоватся?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

29

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Насчёт печати кодами, я предлагал как то упростить, правда тогда всё перешло в срач. В принципе если всех устраивает, можно дополнить постом в той теме коллекции. Ну и клавиши модификаторы выглядят по моему как то надёжнее и удобнее автозамен.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

30

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

serzh82saratov пишет:

Indomito так что именно нужно?
В том коде в котором хук, правильно определять имена клавиш по кодам?
Или из AutoHotkey-имён клавиш получить VK SC код, что навряд ли может потребоватся?

мне нужно модифицироваться тот скрип который корректно выдаёт всё что мне нужно... но это весьма тяжко я про

+ VkScCode_64.ahk
;-----Инициализация
; Скрипт не выгружается
#Persistent
; Отключить иконку в трее - она то по сути не нужна
;#NoTrayIcon 
; Запрет повторного запуска - что бы случано два раза не кликнуть по иконке/ярлыку
#SingleInstance

 hHookKeybd := DllCall("SetWindowsHookEx"
  , Int, WH_KEYBOARD_LL := 13
  , Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
  , Ptr, DllCall("GetModuleHandle", UInt, 0, "Ptr")
  , UInt, 0, "Ptr")
Return

ESC::
lEndVcSc:
  ToolTip
ExitApp  

LowLevelKeyboardProc(nCode, wParam, lParam)
    {
      Critical
      SetFormat, Integer, H
      ToolTip, % wParam . "| vkCode: " . NumGet(lParam+0, 0, "UInt") . " scCode: " . NumGet(lParam+0, 4, "UInt")
                        . " Extended: " . NumGet(lParam+0, 8, "UInt") & 1 . " Time: " . NumGet(lParam+0, 12, "UInt")
      Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
    }
return

Две проблемы
1. Занести в Clipboard
2. Назначить сочетание для выхода, что оно не попало в Clipboard

Идейно я задачу решил, но получается "Почесать правой рукой левое ухо", а точнее "Почесать правой ногой левое ухо"

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

31

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

1. Занести в Clipboard
2. Назначить сочетание для выхода, что оно не попало в Clipboard

1. Clipboard = то что нужно.
2. Непонятно о чём.

До этого вообще речь была про NumPAD.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

32

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

serzh82saratov пишет:

1. Занести в Clipboard
2. Назначить сочетание для выхода, что оно не попало в Clipboard

1. Clipboard = то что нужно.
2. Непонятно о чём.

До этого вообще речь была про NumPAD.

поясняю
1. Clipboard = то что нужно это получается.
2. У меня на завершение было назначено сочетание Ctrl+Win+ESC но функция об этом не знает и заносит ESC в Clipboard
3. Вставка из буфера без завершения скрипта... тоже не проходит Ctrl+V в Clipboard попадают коды V
4. Про NumPAD это был просто ответ на вопрос

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

33

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

2. У меня на завершение было назначено сочетание Ctrl+Win+ESC

На завершение чего?

4. Про NumPAD это был просто ответ на вопрос

дело в NumPad-кнопках

У них SC  разное, а VK  одинаковое  — в зависимости от режима NumPad

Это ответ, или вопрос?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

34

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

serzh82saratov

На завершение чего?

скрипта

Это ответ, или вопрос?

это ответ.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

35

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Наврядли согласно ТЗ, это кому то сможет пригодится.


#Persistent 
#SingleInstance Force 

 hHookKeybd := DllCall("SetWindowsHookEx"
  , Int, WH_KEYBOARD_LL := 13
  , Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
  , Ptr, DllCall("GetModuleHandle", UInt, 0, "Ptr")
  , UInt, 0, "Ptr")
Return
  
LowLevelKeyboardProc(nCode, wParam, lParam)  {
    Critical
    SetFormat, Integer, H
    vkCode := NumGet(lParam+0, 0, "UInt") 
    If (vkCode = 0x1B && GetKeyState("Ctrl", "P") && GetKeyState("LWin", "P"))
        ExitApp 
    If (vkCode = 0x56 && GetKeyState("Ctrl", "P"))
        Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
    ToolTip, % Clipboard := wParam . "| vkCode: " . vkCode . " scCode: " . NumGet(lParam+0, 4, "UInt")
                    . " Extended: " . NumGet(lParam+0, 8, "UInt") & 1 . " Time: " . NumGet(lParam+0, 12, "UInt")
    Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
} 

это ответ.

Очень всё запутано. Значит вопрос: зачем нужны VK и SC всех клавиш. Я вот и при наличии ответа, до сих пор непонимаю, зачем вам это?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

36 (изменено: Indomito, 2015-01-06 20:25:02)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

serzh82saratov пишет:

Я вот и при наличии ответа, до сих пор непонимаю, зачем вам это?

привычка

+Спасибо.... я отстал и доволен

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

37

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

А вот и я.... не работает фрагмент вставки из буфера обмена по Ctrl+V

    If (vkCode = 0x56 && GetKeyState("Ctrl", "P"))
        Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)

Я поменял  на скан-код - не помогло

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

38

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Ещё бы хоть с пятого раза понять что требуется, что означает не работает, какой скан-код.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

39

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Так...

1. Нажимаем ну скажем на TAB, видим через ToolTip его sc и vk
2. Нажимаем сочетание Ctrl+V
3. В результате выводится блокнот или код Ctrl или код V

P.S. Копировал один к одному, я про скрипт.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

40

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Похоже я нашёл проблему, она заключена в том, что надо немного ждать...
1. Если нажата V ждать нажатия Ctrl
2. Если нажата Ctrl ждать нажатия V

Ждать приблизительно 0.5 - 0.50 секунд в цикле While их можно сделать два, а можно и один.
В данной функции Sleep допустим?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

41

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

А коды модификаторов вообще нужны?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

42 (изменено: Indomito, 2015-01-06 22:34:00)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

serzh82saratov пишет:

А коды модификаторов вообще нужны?


ПОНЯЛ -  Они Нужны

P.S. Отредактировал - убрал не нужное.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

43

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Indomito , ваш стиль изложения мыслей весь форум ставит в тупик. А фраза ' 0.5 - 0.50 секунд ' окончательно сломала мозг.

44

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Indomito, я снова ничего непонял.
Irbis +1.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

45 (изменено: Indomito, 2015-01-06 22:15:34)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Извиняюсь.
0.5 - 0.50 секунд - это я про время ожидания

While()
{
  Sleep тут оптимальное число, вот и получилось 0.5 - 0.50 секунд 
  }

  Ёкарный Бабай... да уж написал... конечно  0.05 - 0.5 секунд
Irbis +1

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

46

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

serzh82saratov пишет:

Indomito, я снова ничего непонял.

Отвечаю - Модификаторы Нужны

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

47

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Если уж колхозить...
Вот скрипт, который даёт имеющиеся VK и SC коды, в том числе и мышки.

SetFormat, IntegerFast, h

LAlt::         ; Показать VK-коды
BlockInput, On
Loop, 0xFF
{
Hotkey, % "vk" . A_Index, Label, On
Hotkey, % "sc" . A_Index, Label, Off
}
BlockInput, Off
Return


RAlt::         ; Показать SC-коды
BlockInput, On
Loop, 0xFF
{
Hotkey, % "vk" . A_Index, Label, Off
Hotkey, % "sc" . A_Index, Label, On
}
BlockInput, Off
Return


LAlt & RAlt:: Suspend         ; Отключить горячие клавиши


Label:
ToolTip, %A_ThisHotkey%
Return

48

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Прикольно... только в чём смысл скрипта то?

P.S. Я его не запускал.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

49 (изменено: ekirhs, 2015-04-25 00:25:38)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

stealzy пишет:
Sleep 50

Для этого специальную функцию придумали

Clipboard =
...
ClipWait, 1

Тоже сделал себе удобное добавление. На две буквы удобней. Если с новой строки начинать, то комментарий сверху, а иначе справа.

#If WinActive("ahk_class Notepad++")
:*:`nvkA::`n`; A`nvk41
:*:vkA::vk41 `; A{Left 4}
:*:`nvkB::`n`; B`nvk42
:*:vkB::vk42 `; B{Left 4}
:*:`nvkC::`n`; C`nvk43
:*:vkC::vk43 `; C{Left 4}
:*:`nvkD::`n`; D`nvk44
:*:vkD::vk44 `; D{Left 4}
:*:`nvkE::`n`; E`nvk45
:*:vkE::vk45 `; E{Left 4}
:*:`nvkF::`n`; F`nvk46
:*:vkF::vk46 `; F{Left 4}
:*:`nvkG::`n`; G`nvk47
:*:vkG::vk47 `; G{Left 4}
:*:`nvkH::`n`; H`nvk48
:*:vkH::vk48 `; H{Left 4}
:*:`nvkI::`n`; I`nvk49
:*:vkI::vk49 `; I{Left 4}
:*:`nvkJ::`n`; J`nvk4A
:*:vkJ::vk4A `; J{Left 4}
:*:`nvkK::`n`; K`nvk4B
:*:vkK::vk4B `; K{Left 4}
:*:`nvkL::`n`; L`nvk4C
:*:vkL::vk4C `; L{Left 4}
:*:`nvkM::`n`; M`nvk4D
:*:vkM::vk4D `; M{Left 4}
:*:`nvkN::`n`; N`nvk4E
:*:vkN::vk4E `; N{Left 4}
:*:`nvkO::`n`; O`nvk4F
:*:vkO::vk4F `; O{Left 4}
:*:`nvkP::`n`; P`nvk50
:*:vkP::vk50 `; P{Left 4}
:*:`nvkQ::`n`; Q`nvk51
:*:vkQ::vk51 `; Q{Left 4}
:*:`nvkR::`n`; R`nvk52
:*:vkR::vk52 `; R{Left 4}
:*:`nvkS::`n`; S`nvk53
:*:vkS::vk53 `; S{Left 4}
:*:`nvkT::`n`; T`nvk54
:*:vkT::vk54 `; T{Left 4}
:*:`nvkU::`n`; U`nvk55
:*:vkU::vk55 `; U{Left 4}
:*:`nvkV::`n`; V`nvk56
:*:vkV::vk56 `; V{Left 4}
:*:`nvkW::`n`; W`nvk57
:*:vkW::vk57 `; W{Left 4}
:*:`nvkX::`n`; X`nvk58
:*:vkX::vk58 `; X{Left 4}
:*:`nvkY::`n`; Y`nvk59
:*:vkY::vk59 `; Y{Left 4}
:*:`nvkZ::`n`; Z`nvk5A
:*:vkZ::vk5A `; Z{Left 4}
:*:`nvk0::`n`; 0`nvk30
:*:vk0::vk30 `; 0{Left 4}
:*:`nvk1::`n`; 1`nvk31
:*:vk1::vk31 `; 1{Left 4}
:*:`nvk2::`n`; 2`nvk32
:*:vk2::vk32 `; 2{Left 4}
:*:`nvk3::`n`; 3`nvk33
:*:vk3::vk33 `; 3{Left 4}
:*:`nvk4::`n`; 4`nvk34
:*:vk4::vk34 `; 4{Left 4}
:*:`nvk5::`n`; 5`nvk35
:*:vk5::vk35 `; 5{Left 4}
:*:`nvk6::`n`; 6`nvk36
:*:vk6::vk36 `; 6{Left 4}
:*:`nvk7::`n`; 7`nvk37
:*:vk7::vk37 `; 7{Left 4}
:*:`nvk8::`n`; 8`nvk38
:*:vk8::vk38 `; 8{Left 4}
:*:`nvk9::`n`; 9`nvk39
:*:vk9::vk39 `; 9{Left 4}
:*:`nvk``::`n`; ```nvkC0
:*:vk``::vkC0 `; ``{Left 4}
:*:`nvk-::`n`; -`nvkBD
:*:vk-::vkBD `; -{Left 4}
:*:`nvk=::`n`; =`nvkBB
:*:vk=::vkBB `; ={Left 4}
:*:`nvk[::`n`; [`nvkDB
:*:vk[::vkDB `; [{Left 4}
:*:`nvk]::`n`; ]`nvkDD
:*:vk]::vkDD `; ]{Left 4}
:*:`nvk\::`n`; \`nvkDC
:*:vk\::vkDC `; \{Left 4}
:*:`nvk`;::`n`; `;`nvkBA
:*:vk`;::vkBA `; `;{Left 4}
:*:`nvk'::`n`; '`nvkDE
:*:vk'::vkDE `; '{Left 4}
:*:`nvk,::`n`; ,`nvkBC
:*:vk,::vkBC `; ,{Left 4}
:*:`nvk.::`n`; .`nvkBE
:*:vk.::vkBE `; .{Left 4}
:*:`nvk/::`n`; /`nvkBF
:*:vk/::vkBF `; /{Left 4}

50 (изменено: stealzy, 2015-12-06 11:12:30)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Еще в тему печатания сразу vk-кодами (без автозамен):

#If (WinActive("ahk_class PX_WINDOW_CLASS") || WinActive("AHK_class Notepad++") || WinActive("ahk_class SciTEWindow") || WinActive("AHK_class Notepad")) && GetKeyState("Esc", "P")
	vk51::Send vk51{End}{space}`;{vk51}{Left 3}
	vk57::Send vk57{End}{space}`;{vk57}{Left 3}
	vk45::Send vk45{End}{space}`;{vk45}{Left 3}
	vk52::Send vk52{End}{space}`;{vk52}{Left 3}
	vk54::Send vk54{End}{space}`;{vk54}{Left 3}
	vk59::Send vk59{End}{space}`;{vk59}{Left 3}
	vk55::Send vk55{End}{space}`;{vk55}{Left 3}
	vk49::Send vk49{End}{space}`;{vk49}{Left 3}
	vk4f::Send vk4f{End}{space}`;{vk4f}{Left 3}
	vk50::Send vk50{End}{space}`;{vk50}{Left 3}
	vkdb::Send vkdb{End}{space}`;{vkdb}{Left 3}
	vkdd::Send vkdd{End}{space}`;{vkdd}{Left 3}
	vk41::Send vk41{End}{space}`;{vk41}{Left 3}
	vk53::Send vk53{End}{space}`;{vk53}{Left 3}
	vk44::Send vk44{End}{space}`;{vk44}{Left 3}
	vk46::Send vk46{End}{space}`;{vk46}{Left 3}
	vk47::Send vk47{End}{space}`;{vk47}{Left 3}
	vk48::Send vk48{End}{space}`;{vk48}{Left 3}
	vk4a::Send vk4a{End}{space}`;{vk4a}{Left 3}
	vk4b::Send vk4b{End}{space}`;{vk4b}{Left 3}
	vk4c::Send vk4c{End}{space}`;{vk4c}{Left 3}
	vkba::Send vkba{End}{space}`;{vkba}{Left 3}
	vkde::Send vkde{End}{space}`;{vkde}{Left 3}
	vkdc::Send vkdc{End}{space}`;{vkdc}{Left 3}
	vk5a::Send vk5a{End}{space}`;{vk5a}{Left 3}
	vk58::Send vk58{End}{space}`;{vk58}{Left 3}
	vk43::Send vk43{End}{space}`;{vk43}{Left 3}
	vk56::Send vk56{End}{space}`;{vk56}{Left 3}
	vk42::Send vk42{End}{space}`;{vk42}{Left 3}
	vk4e::Send vk4e{End}{space}`;{vk4e}{Left 3}
	vk4d::Send vk4d{End}{space}`;{vk4d}{Left 3}
	vkbc::Send vkbc{End}{space}`;{vkbc}{Left 3}
	vkbe::Send vkbe{End}{space}`;{vkbe}{Left 3}
	sc35::Send vkbf{End}{space}`;{vkbf}{Left 3}
	sc29::Send sc29{End}{space}`;{sc29}{Left 3} ; Тут vk не справился, поэтому sc
	#If

При зажатом Esc в окнах текстовых редакторов печатает vk-code вместо клавиши и добавляет комментарий в конец строки.
Только для раскладко-зависимых клавиш.

0xFFFFFF
0xFF0000
0xFFFFFF

51

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Я как то приводил такой код, можно его переделать:


#SingleInstance Force

EngSym := {"vkBB":"=","vkBC":",","vkBD":"-","vkBE":".","vkBF":"/","vkC0":"``","vkBA":"`;"
		,"vkDB":"[","vkDC":"\","vkDD":"]","vkDE":"'","vk41":"A","vk42":"B","vk43":"C"
		,"vk44":"D","vk45":"E","vk46":"F","vk47":"G","vk48":"H","vk49":"I","vk4A":"J"
		,"vk4B":"K","vk4C":"L","vk4D":"M","vk4E":"N","vk4F":"O","vk50":"P","vk51":"Q"
		,"vk52":"R","vk53":"S","vk54":"T","vk55":"U","vk56":"V","vk57":"W","vk58":"X"
		,"vk59":"Y","vk5A":"Z"}

#IF Func()
#IF
Hotkey, IF, Func()
For K, V In EngSym 
	Hotkey, Esc & %K%, InputVK
Hotkey, IF
Return

InputVK:
	Key := SubStr(A_ThisHotkey, InStr(A_ThisHotkey, "&") + 2)
    SendInput, % "{Raw}" (GetKeyState("Shift", "P") ? "{" Key "}" : Key) . "   `; """ EngSym[Key] """"
	SendInput {Left 8}
    KeyWait, % Key
    Return
	
Func() {
	If (WinActive("ahk_class PX_WINDOW_CLASS") || WinActive("AHK_class Notepad++") || WinActive("ahk_class SciTEWindow") || WinActive("AHK_class Notepad"))
		Return 1
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

52 (изменено: stealzy, 2016-08-07 12:46:20)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Пришел сейчас к такому решению: функция, принимающая в параметрах:
— ГК в виде "Ctrl + Shift + D" или "win lctrl z" (хотя бы один плюс или пробел, разделяющих клавиши, модификаторы вначале, буквенные клавиши в английской раскладке);
— функцию, которую следует вызвать по ГК;
— параметры вызываемой ф-ии.

myHK = lctrl + win + z
Hotkey(myHK, "msg", "Hy")
Hotkey("Alt Win Z", "msg", "Hy", "world")
Return

msg(message, message2:="") {
	MsgBox % message " " message2
}

Hotkey(hkNoAhkFormat, fun, arg*) {
	Static funs := {}, args := {}
	if (hkNoAhkFormat="")
		Return
	hk:=StrToHK(hkNoAhkFormat)
	funs[hk] := Func(fun), args[hk] := arg
	Hotkey, % hk, Hotkey_Handle
	Return
	Hotkey_Handle:
		funs[A_ThisHotkey].(args[A_ThisHotkey]*)
		Return
}
StrToHK(Str) {
	Static LRPrefix := [["<^","LCtrl"],[">^","RCtrl"],["<!","LAlt"],[">!","RAlt"]
	,["<+","LShift"],[">+","RShift"],["<#","LWin"],[">#","RWin"]]
	, Prefix := [["^","Ctrl"],["!","Alt"],["+","Shift"],["#","Win"]]
	, EngSym := {"vkBB":"=","vkBC":",","vkBD":"-","vkBE":".","vkBF":"/","vkC0":"``","vkBA":"`;","vkDB":"[","vkDC":"\","vkDD":"]","vkDE":"'","vk41":"A","vk42":"B","vk43":"C","vk44":"D","vk45":"E","vk46":"F","vk47":"G","vk48":"H","vk49":"I","vk4A":"J","vk4B":"K","vk4C":"L","vk4D":"M","vk4E":"N","vk4F":"O","vk50":"P","vk51":"Q","vk52":"R","vk53":"S","vk54":"T","vk55":"U","vk56":"V","vk57":"W","vk58":"X","vk59":"Y","vk5A":"Z"}
	RegExMatch(Str, "i)(?<=\+|\s)[A-z=`;'\\,\./-]$", buttonLetter)
	StringReplace, Str, Str, +, @, All
	StringReplace, Str, Str, %A_Space%, @, All
	Loop % LRPrefix.MaxIndex()
		Str := RegExReplace(Str, LRPrefix[A_Index][2] "(?!$)", LRPrefix[A_Index][1])
	Loop % Prefix.MaxIndex()
		Str := RegExReplace(Str, Prefix[A_Index][2] "(?!$)", Prefix[A_Index][1])
	StringReplace, Str, Str, @, , All
	For key, value in EngSym
		If (value = buttonLetter)
			Str := RegExReplace(Str, "i)" value "$", key,, 1)
	Return Str
}
0xFFFFFF
0xFF0000
0xFFFFFF

53 (изменено: teadrinker, 2016-08-06 02:59:35)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Сложновато у вас вышло.

myHK = lctrl + win + z
Hotkey(myHK, "msg", "Hy")
Hotkey("Alt Win Z", "msg", "Hello, ", "World!")
Hotkey("F1", "msg", "Hello, ", "World!")
Return

msg(args*) {
   MsgBox % args[1] args[2]
}

Hotkey(hkNoAhk, fun, args*)  {
   static prefixes := { alt:   "!"
                      , shift: "+"
                      , ctrl:  "^"
                      , win:   "#" }
   start := -2                 
   while start := RegExMatch(hkNoAhk, "i)(l|r)?(ctrl|alt|shift|win)", match, start += 3)
      prefix .= (match1 = "r" ? ">" : match1  = "l" ? "<" : "") . prefixes[match2]
   
   RegExMatch(hkNoAhk, "(.*[ +])?(.+)", key)
   sc := Format("sc{:x}", GetKeySC(key2))
   funcObj := Func(fun).Bind(args*)
   Hotkey, % prefix . sc, % funcObj
}

Правда, оба варианта не учитывают префиксы ~ * $.

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

54 (изменено: stealzy, 2016-08-07 12:47:38)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

1) Мой вариант учитывает префиксы.
2) В моем варианте можно задавать хоткеи в формате ahk.
3) В моем варианте правильно обрабатываются одиночные клавиши-модификаторы.

0xFFFFFF
0xFF0000
0xFFFFFF

55 (изменено: teadrinker, 2016-08-07 15:13:18)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Вот так, вроде, всё работает:

Hotkey("lctrl", "msg", "Hello, ", "World!")
; Hotkey("F1", "msg", "Hello, ", "World!")
; Hotkey("~ Ctrl + C", "msg", "Hello, ", "World!")
; Hotkey("~^vk43", "msg", "Hello, ", "World!")  ; Ctrl + C

msg(args*) {
   MsgBox % args[1] args[2]
}

Hotkey(hkNoAhk, fun, args*)  {
   static patt1 := "^[*~$!^+#<>]+"
      , patt2 := "(l|r)?(ctrl|alt|shift|win)"
      , prefixes := { alt:   "!"
                    , shift: "+"
                    , ctrl:  "^"
                    , win:   "#" }
                      
   RegExMatch(hkNoAhk, patt1, ahkPrefixes)
   hkNoAhk := RegExReplace(hkNoAhk, patt1)
   
   if !RegExMatch(hkNoAhk, "i)^" . patt2 . "$", modifiedKey)  {
      start := -2                 
      while start := RegExMatch(hkNoAhk, "i)" . patt2 . "(?!$)", match, start += 3)
         prefix .= (match1 = "r" ? ">" : match1  = "l" ? "<" : "") . prefixes[match2]
      
      RegExMatch(hkNoAhk, "(.*[ +])?(.+)", key)
      modifiedKey := key2
   }
   sc := Format("sc{:x}", GetKeySC(modifiedKey))
   funcObj := Func(fun).Bind(args*)
   Hotkey, % ahkPrefixes . prefix . sc, % funcObj
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

56 (изменено: stealzy, 2016-08-07 13:05:28)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Кобинацию "Shift + LWin" ваш скрипт превращает в "+<#sc15b", работает, конечно, но мне "+LWin" больше нравится.

0xFFFFFF
0xFF0000
0xFFFFFF

57

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Подправил.

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

58 (изменено: teadrinker, 2016-08-07 21:23:32)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Даже ещё проще:

;Hotkey("shift LWin", "msg", "Hello, ", "World!")
;Hotkey("lctrl", "msg", "Hello, ", "World!")
;Hotkey("F1", "msg", "Hello, ", "World!")
;Hotkey("~ Ctrl + C", "msg", "Hello, ", "World!")
;Hotkey("~^vk43", "msg", "Hello, ", "World!")  ; Ctrl + C
Hotkey("shift lwin", "msg", "Hello, ", "World!")

msg(args*) {
   MsgBox % args[1] args[2]
}

Hotkey(hkNoAhk, fun, args*)  {
   static p1 := "(^[*~$!^+#<> ]+)?"
        , p2 := "(?:(l|r)?(ctrl|alt|shift|win)(?!$))?"
        , prefixes := { alt:   "!"
                      , shift: "+"
                      , ctrl:  "^"
                      , win:   "#" 
                      , l:     "<"
                      , r:     ">" }
   Loop {
      RegExMatch(hkNoAhk, "iO)" . p1 . p2, match, match[0] ? match.Pos[0] + match.Len[0] : 1)
      prefix .= StrReplace(match[1], " ") . prefixes[match[2]] . prefixes[match[3]]
   } until !match[0]

   RegExMatch(hkNoAhk, p1 . "(.*[ +])?(.+)", key)
   sc := Format("sc{:x}", GetKeySC(key3))
   funcObj := Func(fun).Bind(args*)
   Hotkey, % prefix . sc, % funcObj
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

59

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

stealzy пишет:

Удобное добавление горячих клавиш

Так это же всё равно писать надо, не удобнее в блокноте нажать нужные клавиши, а они уже напечатаются в виде горячей клавиши.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

60

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Не надо держать запущенным скрипт для:

serzh82saratov пишет:

в блокноте нажать нужные клавиши, а они уже напечатаются в виде горячей клавиши

Понятнее код скрипта.
Другой человек может изменить ГК под себя, отредактировав скрипт или ini (не нужно создавать GUI).

0xFFFFFF
0xFF0000
0xFFFFFF

61

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

stealzy пишет:

Не надо держать запущенным скрипт

Ну, мне показалось что тема про часть IDE, тогда что то всё равно запущено будет.

Другой человек может изменить ГК под себя, отредактировав скрипт или ini

Если речь о другом человеке, то он кто то из 2 групп, либо хотя бы знает синтаксис ГК или сможет одолеть простую памятку, либо вообще никак неразберётся. Захочется ему например какую нибудь мультимедиа клавишу или пробел, AppsKey, NumpadMult и.т.п., а как её указать (что у неё за имя) даже с наличием понимания куда её прописать, у него всё равно не удастся.
Так что если писать сценарий для кого угодно с изменяемыми им ГК, то без GUI не знаю как.

П.С. Да и с раскладками во всех примерах непонятки, "Ё" например нельзя назначить при английской, или "." будет разной клавишей в раскладках, и если с "Ё" решаемо, то для "." опять же пользователю памятка нужна.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

62 (изменено: serzh82saratov, 2016-08-09 00:22:46)

Re: AHK: Удобное добавление горячих клавиш(vk code для буквенных) в скрипт

Само собой подразумевается, что если человек сможет понять как задавать клавишу через vk или sc код (а тут тоже есть много нюансов, так как не все можно однозначно задать через один из них), то уже наверное он сможет выучить четыре префикса (обозначения) модификаторов. То есть и без данного кода прописать как есть в ини или скрипт.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.33.09 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui