El proceso, RSScriptRunner
, representa un script actualmente en ejecución que fue activado por FastScripts.app. (FastScripts no asigna títulos de proceso únicos a los scripts que activa).
Si uno tiene varios procesos titulados RSScriptRunner
que se ejecutan simultáneamente, entonces el siguiente código:
tell application "System Events" to windows of process "RSScriptRunner"
solo devolverá el nombre de la ventana del proceso que comenzó la primera vez.
Sin embargo, me gustaría obtener cada nombre de ventana de cada proceso RSScriptRunner
.
¿Alguien sabe cómo lograr esto en AppleScript?
Mi intención final aquí es implementar una comprobación que garantice que solo una instancia de un script pueda ejecutarse simultáneamente. Se pueden ejecutar múltiples secuencias de comandos diferentes, pero los múltiplos de una secuencia de comandos que se ejecutan al mismo tiempo no son deseables.
El código se vería así:
tell application "System Events"
set theWindowList to windows of process "RSScriptRunner"
if theWindowList contains "The title of the initial dialog of this script goes here." then
error number -128
end if
end tell
Esta comprobación se ubicará en la parte superior de la secuencia de comandos.
Nota:
Esta es en gran medida una situación en la que la latencia mínima es crucial.
Yo había ideado un método de largo aliento que realizó con éxito mi resultado deseado. El método implicaba obtener cada título de proceso actual en una lista, y obtener cada ID de proceso actual en otra lista correspondiente. Luego recuperé el nombre de la ventana de cada proceso RSScriptRunner
a través de su ID de proceso respectivo (que, a diferencia del nombre del proceso, debe ser único).
Sin embargo, este método trajo consigo un par de segundos de latencia. Necesito una solución que sea casi instantánea (como, por ejemplo, la línea de código anterior).