_HotKeyString_To_AutoitCode
Преобразует текстовый формат записи горячей клавиши в формат функции HotKeySet в Autoit3
#Include <_HotKeyString_To_AutoitCode.au3>
_HotKeyString_To_AutoitCode ( $sKey )
Параметры
$sKey | Текстовый формат записи горячей клавиши, например "Ctrl + s" |
Возвращаемое значение
Успех: | Возвращает строку в формате функции HotKeySet в Autoit3, например "^s" |
Ошибка: | Возвращает пустую строку и устанавливает @error: |
@error: | 1 - передана пустая строка |
2 - с модификаторами используется более чем одна клавиша | |
3 - один и тот же модификатор используется более чем один раз |
Примечания
Обязательно проверяйте @error, так как данные принимаются извне. Преобразует строку, например "Ctrl + a" в вид "^a", последнее является стандартным обозначением модификаторов в Autoit. Это предназначено для чтения горячих клавиш из ini-файла, в котором они записаны в привычном виде.Пример
; AZJIO
; http://www.autoitscript.com/forum/index.php?showtopic=151525
#include <_HotKeyString_To_AutoitCode.au3>
$sHotKey = _HotKeyString_To_AutoitCode('Ctrl + s') & @LF
$sHotKey &= _HotKeyString_To_AutoitCode('Ctrl + Alt+ F1') & @LF
$sHotKey &= _HotKeyString_To_AutoitCode('Ctrl + Shift+ +') & @LF
$sHotKey &= _HotKeyString_To_AutoitCode('Win + Home')
MsgBox(0, 'Сообщение', $sHotKey)
; Определяет ошибочные конструкции
$sHotKey = _HotKeyString_To_AutoitCode(' + Shift') & @LF ; разделитель справа
$sHotKey &= _HotKeyString_To_AutoitCode('Ctrl + Shift+ ') & @LF ; разделитель слева
$sHotKey &= _HotKeyString_To_AutoitCode(' + Shift+ ') & @LF ; разделитель справа и слева
$sHotKey &= _HotKeyString_To_AutoitCode(' Ctrl + Shift') & @LF ; только модификаторы
$sHotKey &= _HotKeyString_To_AutoitCode(' Ctrl + d+Shift') & @LF ; не соблюдение очерёдности клавиш и модификаторов
$sHotKey &= _HotKeyString_To_AutoitCode('Ctrl + s + d') ; более одной клавиши с модификатором
MsgBox(0, 'Ошибочные конструкции', $sHotKey)