![Время форматирования AutoHotKey](https://rvso.com/image/1567502/%D0%92%D1%80%D0%B5%D0%BC%D1%8F%20%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20AutoHotKey.png)
Я пытаюсь отформатировать время в 24-часовом формате следующим образом.
Если я наберу "1930+" → 19:30
Если я наберу "0630+" → 06:30
В принципе, когда он читает "+" в конце числа 0-9, то он добавляет ":" на две позиции назад. Просто не уверен, как это сделать.
решение1
; *: An ending character is not required
; ?: The hotstring will be triggered even when it is inside another word
#Hotstring * ?
::0+::
::1+::
; ...
::9+::
PriorKey := SubStr(A_PriorKey, 0) ; remove "Numpad" if using number pad
SendInput, %PriorKey%{Left 2}:{Right 2}
return
Если хотите быть точнее:
#Hotstring * ?
::0+::
::1+::
; ...
::9+::
ClipSaved := ClipboardAll ; save Clipboard
clipboard := "" ; empty the clipboard
PriorKey := SubStr(A_PriorKey, 0) ; remove "Numpad" if using number pad
SendInput, %PriorKey%{Shift Down}{Left 4}{Shift Up} ; select the last 4 typed chars
Send, ^c ; copy the selected text
ClipWait, 1 ; wait for the clipboard to contain data.
if (!ErrorLevel) ; If NOT ErrorLevel clipwait found data on the clipboard
{
If ((clipboard is number) && (SubStr(clipboard, 1, 2) < 24) && (SubStr(clipboard, -1) < 60))
Send, {Left}{Right 2}:{Right 2}
else
Send, {Right}
}
Sleep, 300
clipboard := ClipSaved ; restore original clipboard
return