Necesita ayuda para crear Automator Service para realizar tareas similares a una desinstalación residual

1

He estado teniendo un problema con un programa que uso mucho todos los días, donde actúa como si se estuviera recuperando de un fallo, incluso cuando se cerró correctamente y se guardaron todos los archivos. La aplicación es FontLab Studio, no es que importe. Lo que sucede es que carga todos los archivos en los que he trabajado recientemente, que pueden ser de varias docenas, e incluso si hago clic en todos ellos, sucede varias veces más a lo largo del día. O, algo hace que se bloquee cuando salgo de estos archivos, así que tengo que relanzar y todo comienza de nuevo.

Lo que he estado haciendo para evitar esto, es ejecutar AppCleaner, el desinstalador gratuito, y eliminar todo menos la aplicación y la información de la licencia. Esto funciona muy bien, pero dada la frecuencia que se hace necesaria, me gustaría poder crear algo a lo que pueda acceder realmente rápido, como un Applescript que pueda poner en mi dock. O un servicio de Automator ubicado en los elementos del menú contextual.

No conozco ningún Applescript, pero intenté hacer un flujo de trabajo de Automator. El primer paso, "Obtener elementos seleccionados del buscador". Uno tiene una ubicación estática, el segundo puede cambiar, no estoy seguro.

~/Library/Saved Application State/com.fontlab.studio5.savedState

/var/db/BootCaches/34D6C504-2F5B-416F-9C91-0C9D019BF446/app.com.fontlab.studio5.playlist

El segundo paso en el flujo de trabajo es moverse a la papelera, y ahí es donde falla. Sospecho porque estos requieren una contraseña? Si es posible, sería genial si pudiera ingresar una vez y recordar, de lo contrario, cómo lo necesitaré para indicarme que ingrese mi clave de acceso. No conozco la mejor manera de hacer esto.

Acabo de tener otro pensamiento, aunque puede que no funcione ya que requeriría que FontLab esté abierto en ese momento, sería lograr esto con un script de Python, porque FontLab está parcialmente integrado en python y puede instalar scripts de terceros. Estoy abierto a cualquier ayuda que alguien pueda ofrecer.

Gracias de antemano!

    
pregunta Moscarda 25.07.2016 - 09:59

1 respuesta

0

No tengo instalado FontLab Studio sin embargo, con el propósito de brindar una solución a su situación, bajo OS X El Capitan 10.11.5, hice lo siguiente:

  • En una Terminal en /private/var/db/BootCaches , usando sudo , mkdir y touch creé un directorio llamado 34D6C504-2F5B-416F-9C91-0C9D019BF446 y en ese directorio un archivo llamado app.com.fontlab.studio5.playlist .

  • En el Finder, en la Biblioteca de mi carpeta de Inicio > Carpeta guardada del estado de la aplicación, duplicé una carpeta y cambié el nombre de la copia a "com.fontlab.studio5.savedState"

Al hacerlo, esto replicó las ubicaciones y los archivos de destino con los privilegios adecuados para luego probar la siguiente aplicación AppleScript.

En Script Editor, utilicé el siguiente código para crear Reset FontLab Studio.app y lo guardé en la carpeta de Aplicaciones de la Macintosh HD y luego lo arrastré al Dock para tenerlo fácilmente disponible para hacer clic en.

try
    do shell script "rm -r \"$HOME/Library/Saved Application State/com.fontlab.studio5.savedState\" /private/var/db/BootCaches/*/app.com.fontlab.studio5.playlist" with administrator privileges
end try

Cuando hago clic en Restablecer FontLab Studio Dock Tile, se muestra el cuadro de diálogo de contraseña, como se muestra a continuación, para que escriba mi contraseña. Escribí mi contraseña y presioné enter. Eso es todo, la aplicación hizo lo que estaba programado para hacer.

Notas:

  • ComosepruebaestecódigosugeriríacopiarloypegarlocomoestáenelEditordesecuenciasdecomandosyluegoguardarlocomounaaplicaciónconelnombrequedesee.

  • $HOMEseestáusandoporque~puede/loharáaveceserrorenAppleScripty/oAutomator,dependiendodesuusoespecífico.Normalmente,~seexpandealvalordeVariabledeentornodeHOMEy,porlotanto,normalmenteuso$HOMEsobre~paraevitarerroresquepuede/generaráaveces.

  • Lasustituciónde*por34D6C504-2F5B-416F-9C91-0C9D019BF446esintensiva,paraacomodarelposiblecambiodenombre.

  • ElcomandotryseusaparaevitarunerrorsiejecutalaaplicaciónRestablecerFontLabStudioantesdequesevuelvanacrearlosarchivosdedestinoyosiunouotronoexiste,aúnseeliminaotro.

  • /varesunenlacesimbólicoa/private/var,sinembargo,prefierousarlarutaabsolutasobreelenlacesimbólicoencasoscomoeste.

  • Elusodelcomandormesintrínsecamentepeligroso,especialmentecuandoseusaconprivilegioselevadosy/ocomodines,porlotanto,asegúresedequenohayaerrorestipográficosensulíneadecomandosyquelosobjetivossonlosobjetivosprevistos.Poresoprobémicódigoantesdepublicarlo.Tambiénpuedeintroducirelcomandormconecho,porejemplo,echorm...yluegorevisarlasalidaenelpanelEventos/Resultadosdeleditordesecuenciasdecomandosyluegoeliminarechoantesdeguardarlasecuenciadecomandos.

Laimagendebajodeellaparamostrarelresaltadosintácticoyparaverlalíneadecomandocompletadelcomandodoshellscript

SiustedeselúnicousuariodelacomputadoraynodeseatenerqueingresarsucontraseñacuandoseejecutalaaplicaciónRestablecerFontLabStudio,modifiqueelcomandodoshellscriptusandolasiguientesintaxis:

doshellscript"command" user name "me" password "mypassword" with administrator privileges

Ejemplo:

do shell script "rm -r \"$HOME/Library/Saved Application State/com.fontlab.studio5.savedState\" /private/var/db/BootCaches/*/app.com.fontlab.studio5.playlist" user name "me" password "mypassword" with administrator privileges

Tenga en cuenta que cuando se guarda el código de la secuencia de comandos, el valor de user name y password se guardan en texto legible dentro del archivo binario "main.script" del paquete de la aplicación. Por lo tanto, use este método bajo su propio riesgo, ya que se considera un riesgo de seguridad al almacenar nombres de usuario y contraseñas que se almacenan de manera no encriptada.

    
respondido por el user3439894 25.07.2016 - 18:16

Lea otras preguntas en las etiquetas