1

Тема: AHK: Проверка переменной на наличие кириллицы

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

Gui Show, w415 h337, Настройки
Gui Font,, Microsoft Sans Serif
Gui Add, Text, x0 y56 w134 h23 +0x200, Автостроитель прямо
Gui Font
Gui Add, Hotkey, x136 y56 w120 h21 vMyLabel
Gui Font,, Microsoft Sans Serif
Gui Add, Text, x0 y88 w158 h23 +0x200, Автостроитель диагональ
Gui Font
Gui Add, Hotkey, x160 y88 w120 h21 vMyLabel1
Gui Font,, Microsoft Sans Serif
Gui Add, Text, x0 y120 w41 h23 +0x200, Меню
Gui Font
Gui Add, Hotkey, x40 y120 w120 h21 vMyLabel2
Gui Font,, Microsoft Sans Serif
Gui Add, Text, x0 y152 w78 h23 +0x200, Авто разбег
Gui Font
Gui Add, Hotkey, x80 y152 w120 h21 vMyLabel3
Gui Font,, Microsoft Sans Serif
Gui Add, Text, x0 y184 w111 h23 +0x200, Вылет с сервера
Gui Font
Gui Add, Hotkey, x112 y184 w120 h21 vMyLabel4
Gui Font,, Microsoft Sans Serif
Gui Add, Text, x0 y216 w97 h23 +0x200, Спящий режим
Gui Font
Gui Add, Hotkey, x104 y216 w120 h21 vMyLabel5
Gui Font,, Microsoft Sans Serif
Gui Add, Text, x0 y248 w67 h23 +0x200, Хитбоксы
Gui Font
Gui Add, Hotkey, x72 y248 w120 h21 vMyLabel6
Gui Font
Gui Add, Button, gBindSave x80 y312 w143 h23, Сохранить и применить
return

BindSave:
Gui Submit
Gui Destroy
return

И если не сложно, сделайте проверку на наличие двух одинаковых горячих клавиш.

2

Re: AHK: Проверка переменной на наличие кириллицы

Поищите по форуму по словам "кириллица" и "Regex".

3 (изменено: Vsevolod, 2020-12-17 17:38:46)

Re: AHK: Проверка переменной на наличие кириллицы

ypppu
Нашёл только это http://forum.script-coding.com/viewtopic.php?id=12329 , но там замена и в открытом файле, а мне нужно просто проверку в переменной скрипта. Да и как это работает я даже близко не понял.

4

Re: AHK: Проверка переменной на наличие кириллицы

Гляньте http://forum.script-coding.com/viewtopic.php?id=14032.

5

Re: AHK: Проверка переменной на наличие кириллицы

Vsevolod

Для сохранения в файл настроек и дальнейшего использования для перехвата, лучше использовать конвертер:

FormatHotkey(Hotkey)
{
 RegExMatch(Hotkey, "S)^([\^\+!]*)(.*?)$", K)
 If (StrLen(K2) = 1)
  Return K1 . Format("sc{:X}", GetKeySC(K2))
 Return Hotkey
}

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

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

6

Re: AHK: Проверка переменной на наличие кириллицы

__Михаил__, а как же "#"?

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

7

Re: AHK: Проверка переменной на наличие кириллицы

Phoenixxx_Czar

А что с '#' не так? Хороший символ - используйте на здоровье.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

8

Re: AHK: Проверка переменной на наличие кириллицы

__Михаил__, если вашу функцию вызвать с параметром "#s", то вернет "#s". Данного символа нет в регулярном выражении.

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

9

Re: AHK: Проверка переменной на наличие кириллицы

Phoenixxx_Czar

Взял давно с форума, меня полностью устраивает. Если вас нет - доработайте.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

10 (изменено: serzh82saratov, 2020-12-18 23:50:40)

Re: AHK: Проверка переменной на наличие кириллицы

Phoenixxx_Czar пишет:

__Михаил__, если вашу функцию вызвать с параметром "#s", то вернет "#s". Данного символа нет в регулярном выражении.

Знакомая функция. Уверен что автор сделал её только для контрола Hotkey, а "#" в нём быть не может.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Проверка переменной на наличие кириллицы

serzh82saratov

Ну, как видим тут есть те, кто утверждает обратное.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101