1

Тема: AHK: RegExReplace переменные в одной строчке

Здравствуйте!

Как можно сделать все в одну строчку:

HotKey_a := RegExReplace(HotKey_a,"!", "Alt + ")
HotKey_a := RegExReplace(HotKey_a,"+", "Shift + ")
HotKey_a := RegExReplace(HotKey_a,"^", "Ctrl +")

Дабы заменяло: "+" на "Shift +", "!" на "Alt +" и "^" на "Ctrl +"?

Напишите, пожалуйста. Спасибо!

2

Re: AHK: RegExReplace переменные в одной строчке

В одну никак. Можно так:

strHotkey := "^!+vk31"
for k, v in {"!": "Alt", "+": "Shift", "^": "Ctrl"}
   strHotkey := RegexReplace(strHotkey, "\" . k . "(?!\s)", v . " + ")
MsgBox, % strHotkey
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3 (изменено: serzh82saratov, 2019-01-29 00:03:22)

Re: AHK: RegExReplace переменные в одной строчке

Без Regex, и с именем. Правда так портится очерёдность префиксов, если использовать + как разделитель.

Hotkey := "^!+vk31"
for k, v in ["+", "!","^", 0], n := ["Shift", "Alt", "Ctrl"] 
	Hotkey := StrReplace(Hotkey, v, "", c)
	, ret .= c ? n[k] . " + " : !v ? GetKeyName(Hotkey) : "" 
MsgBox, % ret
+ открыть спойлер

Или так:

Hotkey := "^!+vk31"
for k, v in {"!": "Alt", "|": "Shift", "^": "Ctrl"}
, Hotkey := StrReplace(Hotkey, "+", "|")
	Hotkey := StrReplace(Hotkey, k, v . " + ") 
MsgBox, % Hotkey
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.30.03 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

4 (изменено: mtc_err, 2019-01-29 19:19:39)

Re: AHK: RegExReplace переменные в одной строчке

Все не совсем так..

5

Re: AHK: RegExReplace переменные в одной строчке

teadrinker и serzh82saratov, я, возможно, не совсем понятливо изложил, сейчас поправлюсь/выдвину конкретику.


Надо так: если в переменной "HotKey_a" имеются символы "!", "^", "+", то она их заменяет на "Alt + (клавиша)", "Ctrl + (клавиша)", "Shift + (клавиша)".

Gui, help6:Add, Text, xp y25 w470 0x10
HotKey_a := "^!+vk31"
for k, v in {"!": "Alt", "+": "Shift", "^": "Ctrl"}
HotKey_a := RegexReplace(HotKey_a, "\" . k . "(?!\s)", v . " + ")
Gui, help6:Add, Text, x130 y30 w465 h432,
(
Запуск / Пауза отыгровок у вас назначено на %HotKey_a%
)

6

Re: AHK: RegExReplace переменные в одной строчке

Красиво наверное никак. А у вас никак не получается сделать, или не получается в одну строку?


Hotkey := "!+^vk31"

Key := GetKeyName(RegExReplace(Hotkey, "\+|\^|!", , r))
for k, v in ["+", "!","^", 0], n := ["Shift", "Alt", "Ctrl"]
	Hotkey := StrReplace(Hotkey, v, "", c)
	, ret .= c ? n[k] . " + " Key ", " : !v && !r ? Key : "" 
ret := RTrim(ret, ", ")

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

7

Re: AHK: RegExReplace переменные в одной строчке

serzh82saratov, все, спасибо Вам большое! Все работает как нужно.

8

Re: AHK: RegExReplace переменные в одной строчке

serzh82saratov пишет:

Красиво наверное никак. А у вас никак не получается сделать, или не получается в одну строку?


Hotkey := "!+^vk31"

Key := GetKeyName(RegExReplace(Hotkey, "\+|\^|!", , r))
for k, v in ["+", "!","^", 0], n := ["Shift", "Alt", "Ctrl"]
	Hotkey := StrReplace(Hotkey, v, "", c)
	, ret .= c ? n[k] . " + " Key ", " : !v && !r ? Key : "" 
ret := RTrim(ret, ", ")

MsgBox, % ret

Мне нужен скрипт  когда я нажимаю на shift и отпускаю и сразу чтоб нажался один раз пробел с таймером как ето зделать ?

9 (изменено: MandarinKa02, 2019-01-31 23:47:49)

Re: AHK: RegExReplace переменные в одной строчке

https://gl.weburg.net/00/fck/Picard-headesk.jpg

10

Re: AHK: RegExReplace переменные в одной строчке

serzh82saratov
почему игнорять не отвечають ?????????????????????????