¿Cómo funciona copiar, pegar y tabular usando AppleScript?

1

Estoy buscando automatizar Copiar, Pegar, Tabular e Izquierda en Microsoft Excel y Safari o Firefox usando Applescript. Tengo una experiencia limitada en codificación y recientemente he cumplido con un código, pero desafortunadamente no funciona según lo planeado ...

Lo que quiero que suceda;

  1. En el navegador Copiar
  2. En Excel Pegar, Izquierda, Copiar
  3. En el navegador Tab, Pegar, Tab x8
  4. Repetir
repeat 50 times

    tell application "Safari" to activate
    tell application "System Events"
        tell process "Safari"
            keystroke "c" using command down
        end tell
    end tell

    delay 0.3

    tell application "Microsoft Excel" to activate
    tell application "System Events"
        tell process "Microsoft Excel"
            keystroke "v" using command down
            delay 0.3
            key code 123
            keystroke "c" using command down
        end tell
    end tell

    tell application "Safari" to activate
    tell application "System Events"
        tell process "Safari"
            keystroke tab
            keystroke "v" using command down
            keystroke tab
            keystroke tab
            keystroke tab
            keystroke tab
            keystroke tab
            keystroke tab
            keystroke tab
            keystroke tab
        end tell
    end tell

    delay 0.3

end repeat
    
pregunta Freddie F 19.08.2015 - 14:22

1 respuesta

1

Es difícil saber exactamente lo que está intentando lograr, pero se introdujeron algunas mejoras en el código a continuación, con comentarios agregados en el código. Varios puntos:

  1. Tenga en cuenta que, dependiendo de qué tan rápido / lento esté respondiendo su sistema, es posible que necesite pequeños retrasos después de cada pulsación de tecla o acción. Tendrás que calcular empíricamente el tiempo mínimo.

  2. Cada vez que "active" o inicie Safari, Excel o cualquier aplicación dentro del script, se producirá un retraso hasta que la aplicación esté en funcionamiento. Para lidiar con esto, necesitará que estas aplicaciones se ejecuten antes de ejecutar la secuencia de comandos, o debe introducir demoras lo suficientemente largas en su secuencia de comandos, o mejor aún, debe agregar código que detenga la secuencia de comandos hasta que se inicie la aplicación.

  3. Al abrir Safari y Excel, no está especificando ninguna ventana, archivo o URL específicos para orientar las pulsaciones de teclas posteriores. Así como está escrito, el script se ubicará en la ventana / pestaña frontal de cada aplicación. Supongo que está bien si lo que estás apuntando es la ventana frontal. Si no existe una ventana abierta, el script fallará. Por ejemplo, para solucionar esto, agregué código para abrir un nuevo archivo de Excel.

  4. Tal como está construido actualmente, el script se copia desde la ventana frontal de Safari, y luego finalmente vuelve a la misma ventana para ejecutar la pestaña - pegar - pestaña x 8. ¿Hay que asumir que esa fue la intención?

  5. Tal como está construido actualmente, el valor predeterminado es pegar en la celda A1 de Excel. Luego le dice a Excel que se mueva una vez a la celda a la izquierda, pero no hay una celda a la izquierda de A1.

  6. Gran parte del código está escrito para secuencias de comandos GUI. Siempre que sea posible, es mejor usar los comandos de Apple para realizar la actividad deseada. Lo dejaré así por ahora. Probablemente tengas suficiente en tu mente aprendiendo lo básico ahora mismo.

    tell application "Safari" to activate
    
    tell application "System Events"
        tell process "Safari"
        keystroke "c" using command down
        delay 0.3
        end tell
    end tell
    
    
    tell application "Microsoft Excel" to activate
        delay 5 -- time required to launched Excel if not already open
    
    tell application "System Events"
        tell process "Microsoft Excel"
        keystroke "n" using command down -- open new excel page
        delay 0.5 -- wait for new excel page to open
        keystroke "v" using command down
        delay 0.2 -- wait for key stroke entry
        key code 123
        delay 0.2 -- wait for key stroke entry
        keystroke "c" using command down
        delay 0.2 -- wait for key stroke entry
    end tell
    
    end tell
    
    
    tell application "Safari" to activate
    
    tell application "System Events"
        tell process "Safari"
        keystroke tab
        delay 0.2 -- wait for key stroke entry
        keystroke "v" using command down
        delay 0.2 -- wait for key stroke entry
    
        repeat 8 times
            keystroke tab
            delay 0.2 -- wait for key stroke entry
        end repeat
    
    end tell
    
    end tell
    
respondido por el paamachat 20.08.2015 - 09:38

Lea otras preguntas en las etiquetas