AutoHotKey Format Time


1

Estoy tratando de formatear 24 horas como esta.

Si escribo "1930+" → 19:30

Si escribo "0630+" → 06:30

Básicamente, cuando lee un "+" al final del número 0-9, agrega un ":" dos lugares hacia atrás. Simplemente no estoy seguro de cómo hacer esto.

Respuestas:


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

Si quieres ser más preciso:

#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

https://autohotkey.com/docs/Hotstrings.htm#Options


¿Hay alguna manera de hacerlo funcionar con números ingresados ​​a través del teclado numérico? Funciona muy bien, pero solo si se usan teclas numéricas ubicadas sobre las letras.
Andrew

Prueba los códigos editados.
user3419297
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.