Estoy tratando de crear un servicio basado en Automator que busque en mi computadora el texto seleccionado. (Cuando digo "mi computadora", me refiero específicamente a Macintosh HD, no a esta Mac , porque esta Mac incluye discos duros externos).
Me gustaría que los resultados de la búsqueda aparecieran en una nueva ventana del Finder.
¿Es posible lograr esto mediante programación en Applescript o en un script de shell? Esto no parece posible, pero sería ideal.
Si esto no se puede hacer realmente mediante programación, estaría de acuerdo con lograr esto "manualmente". Aquí hay un ejemplo de cómo esa ruta podría manifestarse:
tell application "Finder"
activate
open (POSIX file "/")
end tell
tell application "System Events"
keystroke "f" using command down
keystroke input
end tell
Sin embargo, no sé cómo cambiar el directorio de búsqueda. (Estoy tratando de evitar los clics del mouse con secuencias de comandos). De forma predeterminada, cuando un usuario inicia una búsqueda en Finder (por ejemplo, cuando el usuario presiona +), el ⌘ commanddirectorio Fde búsqueda es "Esta Mac", independientemente del directorio de la ventana de Finder. que la función de búsqueda fue llamada.
Si no le importa cambiar una preferencia particular del Finder , es decir, al realizar una búsqueda: , lo siguiente funcionará.
Primero, en Finder > Preferencias... > Avanzado , configure Al realizar una búsqueda: para: Buscar en la carpeta actual
A continuación, cree un flujo de trabajo de Automator Service con su configuración predeterminada (el servicio recibe el texto seleccionado en cualquier aplicación) y agregue una acción Ejecutar AppleScript , reemplazando el código predeterminado con el siguiente código :
on run {input, parameters}
tell application "Finder"
activate
open (POSIX file "/")
end tell
delay 0.5 -- # Adjust as necessary or comment out/remove if not needed.
tell application "System Events"
keystroke "f" using command down
keystroke input as text
keystroke return
end tell
end run
Guarde el flujo de trabajo de Automator Service , por ejemplo, Buscar texto seleccionado en Finder
Si desea agregar una prueba programática y un cambio de preferencia para Al realizar una búsqueda: estar configurado para Buscar en la carpeta actual , agregue el siguiente código directamente después on run {input, parameters}
y antes del tell application "Finder"
bloque.
if (do shell script "defaults read com.apple.finder FXDefaultSearchScope") is not "SCcf" then
do shell script "defaults write com.apple.finder FXDefaultSearchScope SCcf; killall Finder"
delay 1 -- # Adjust as necessary or comment out/remove if not needed.
end if
Una alternativa es dejar la preferencia predeterminada del Finder para Al realizar una búsqueda: para Buscar en esta Mac y hacer lo siguiente:
Siga para guardar la búsqueda. En este caso, por ejemplo:
En la acción Ejecutar AppleScript del flujo de trabajo de Automator Service , reemplácelo con el siguiente código de ejemplo , ajustado para su sistema y cómo/dónde guardó la búsqueda: open (POSIX file "/")
open POSIX file "/Users/me/Library/Saved Searches/Searching “Macintosh HD”.savedSearch"
El código AppleScript de ejemplo sería entonces:
on run {input, parameters}
tell application "Finder"
activate
open POSIX file "/Users/me/Library/Saved Searches/Searching “Macintosh HD”.savedSearch"
end tell
delay 0.5 -- # Adjust as necessary or comment out/remove if not needed.
tell application "System Events"
keystroke "f" using command down
keystroke input as text
keystroke return
end tell
end run
Este último método deja solo la configuración predeterminada en Finder y logra el objetivo sin hacer clic con el mouse ni hacer clic en los botones del flujo de trabajo de Automator Service .
Nota: El código AppleScript de ejemplo es solo eso y puede requerir comandos adicionales donde sea apropiado/necesario, por ejemplo, entre los comandos como/si es necesario. delay
keystroke
usuario3439894