1 votos

¿Cómo escribir un servicio para obtener una cadena?

Quiero escribir un servicio en MacOS, y que sólo devuelva una cadena, como mi dirección de correo electrónico. Así que en cualquier aplicación, si necesito la dirección de correo electrónico de entrada, acabo de golpear el mismo acceso directo.

Escribo un servicio en automator, y ejecuto el shell script:

#!/usr/bin echo "my_name@domain.com"

pero sólo envía el texto a stdout en lugar de a la entrada de la aplicación.

0 votos

Acabo de añadir otro paso "Copiar al Portapapeles" y ahora después de ejecutar este servicio en cualquier aplicación, la cadena se copiará al portapapeles y puedo usar Ctrl+V para obtener el contenido directamente. Pero no es una buena implementación, porque se necesitan dos atajos: 1 ejecutar el servicio , 2 ctrl +v. Todavía no es conveniente.

2 votos

Podría ser más fácil utilizar la Sustitución de Texto en su lugar (en las Preferencias del Sistema).

0 votos

La sustitución de texto es una buena forma de reemplazar una cadena conocida. También necesito que el servicio pueda hacer algo más, como: dar salida a la fecha/hora actual en un formato específico.

1voto

wch1zpink Puntos 11

Puede añadir un comando "ejecutar applescript" a su flujo de trabajo de Automator

set the clipboard to "my_name@domain.com"
tell application "System Events"
    keystroke (the clipboard)
end tell

O

tell application "System Events"
    keystroke "my_name@domain.com"
end tell

Puede añadir este AppleScript a su flujo de trabajo de Automator para poder insertar la hora y la fecha desde el portapapeles

set AppleScript's text item delimiters to ","
set theLongDate to (current date)
set theLongDate to (date string of theLongDate)
set currentMonth to (word 1 of text item 2 of theLongDate)
set currentDay to (word 2 of text item 2 of theLongDate)
set currentYear to (word 1 of text item 3 of theLongDate)
set monthList to {January, February, March, April, May, June, July, August, September, October, November, December}
repeat with x from 1 to 12
    if currentMonth = ((item x of monthList) as string) then
        set theRequestNumber to (text -2 thru -1 of ("0" & x))
        exit repeat
    end if
end repeat
set currentMonth to theRequestNumber
set currentDay to (text -2 thru -1 of ("0" & currentDay))
set theShortDate to (currentMonth & "/" & currentDay & "/" & currentYear) as string
set CurrentTime to (time string of (current date))
set CurrentTimeandShortDate to (theShortDate & " @ " & CurrentTime)

set the clipboard to the result -- the result formatted like this 04/16/2017 @ 12:27:00 AM

-- If you only want to copy the time and date to your clip board without sending the keystrokes, Then comment out the next three lines

tell application "System Events"
    keystroke (the clipboard)  
end tell

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X