Visualizzazione post con etichetta AppleScript. Mostra tutti i post
Visualizzazione post con etichetta AppleScript. Mostra tutti i post

08 febbraio 2010

Copiare il path di un file su Mac Os X Snow Leopard tramite il finder

Precedentemente su questo Blog (link) avevo pubblicato un post per aggiungere funzionalità al finder di Mac Os X Leopard mediante automator.
In particolare era stato implementato uno script Applescript mediante il cui era possibile aprire nella finestra contestuale dal Finder un menu per poter recuperare il path di uno o più files.

Mi è stato fatto notare che ci sono stati dei cambiamenti in Snow Leopard per cui ho adattato lo script al nuovo sistema operativo.

Ho deciso quindi di implementare una nuova versione dello script. Anzi 2 nuove versioni da usare in 2 modalità alternative.
METODO 1 - MENU CONTESTUALE NEL FINDER
I passi da eseguire sono pochi e semplici, cercherò di rendere la cosa il meno possibile complessa con l'ausilio di opportune immagini.

1. Aprire l'applicazione AUTOMATOR (applicazione davvero utile, potete trovare maggiori informazioni al link) e selezionare come tipo di progetto "Servizio".



2. Nei menù a tendina presenti nella parte centrale della finestra dovrete scegliere rispettivamente le voci : "documenti e cartelle" e "Finder.app"



3. Nel menà alla sinistra della vostra pagina dovrete scegliere "Utility" e "Esegui Applescript".



4. Dovrete copiare e incollare questo pezzo di codice all'interno dell' opportuno riquadro, come in figura :
(* 
 author : Franzi Alessandro 
*)
on run {input, parameters}
 
 set sel to input
 if sel is {} then
  display dialog "Devi selezionare almeno un file prima" buttons {"Cancel"} default button "Cancel" giving up after 15
  return {}
 end if
 
 -- se sono state selezionate piu voci
 set baseList to {}
 repeat with selItem in sel
  -- Recupero la corrente
  set lastItem to POSIX path of (selItem as text)
  -- Inserisco in lista
  set baseList to baseList & lastItem
 end repeat
 
 -- recupero le directory se piu di una
 set pathList to my baseList
 
 
 if pathList is {} then
 else
  set scelte to (choose from list pathList with prompt "Path:" with title "Show Path" with multiple selections allowed)
  
  if scelte is {} then
  else
   set myString to ""
   --set the clipboard to selected
   repeat with theItem in scelte
    set myString to theItem & "
" & myString
   end repeat
   --set the clipboard to selected
   try
    
    set the clipboard to myString
   on error
    display dialog "Problemi"
   end try
  end if
  
 end if
end run




5. Scegliere di Salvare il file e inserire il nome con cui volete registrare il servizio (stesso nome con cui lo vedrete nel menu contestuale nel vostro Finder)





6. Adesso utilizzando il finder potrete accedere alla nuova funzionalità



METODO 2 - BARRA CONTESTUALE MAC OS X

Il seguente metodo consiste semplicemente nell' aggiungere nella barra di Mac Os X il pulsante per accedere alla funzionalità relative agli AppleScript del vostro sistema. I passi sono semplici come nel caso precedente, anche lo script cambia, visto che il contesto in cui viene utilizzato è diverso. Naturalmente l'utilizzo è lo stesso, per cui tramite il finder potrete selezionare i files e tramite l'icona accedere alla funzionalità.

1. Lanciare l'applicazione "AppleScript Editor", entrare nelle preferenze ed abilitare l'icona per gli script nella barra di Mac Os X :


2. Tramite automator salvare il seguente codice in un file di script :

(* 
 author : Franzi Alessandro 
*)

set debug to true

global windowTitle
set windowTitle to "Show Path"

on findPath()
end findPath

-- Restituisce la lista dei path selezionati 
on getPathList(sel)
 if sel is {} then
  display dialog "Devi selezionare almeno un file prima" buttons {"Cancel"} default button "Cancel" giving up after 15 with title windowTitle
  return {}
 end if
 
 -- se sono state selezionate piu voci
 set baseList to {}
 repeat with selItem in sel
  -- Recupero la corrente
  set lastItem to POSIX path of (selItem as text)
  -- Inserisco in lista
  set baseList to baseList & lastItem
 end repeat
 return baseList
end getPathList

on getSelected(selected)
 if selected is {} then
 else
  set myString to ""
  --set the clipboard to selected
  repeat with theItem in selected
   set myString to theItem & "
" & myString
  end repeat
  --set the clipboard to selected
  try
   
   set the clipboard to myString
  on error
   display dialog "Problemi"
  end try
 end if
end getSelected

tell application "Finder"
 
 -- recupero le directory se piu di una
 set pathList to my getPathList(selection)
 
 -- se non sono i debug mostro una dialog
 --if debug then display dialog cmd with title windowTitle
 
 if pathList is {} then
 else
  set scelte to (choose from list pathList with prompt "Path:" with title windowTitle with multiple selections allowed)
  
  set return to my getSelected(scelte)
  
 end if
 
end tell


3. Copiare i files degli script nella cartella dove essi verranno recuperati. Cliccare sull'icona appena aggiunta, navigare il menù "apri la cartella Script", dopodichè "Apri la cartella script Finder" (scegliendo in quale cartella copiare i files potrete usare gli script a livello locale sull'applicazione, altrimenti a livello globale su tutto il sistema operativo)





4. Adesso accedendo mediante l'icona nella barra contestuale di Mac Os X potrete usare lo script che ai fini pratici analizzeremo tra un pò.



COME FUNZIONA

Il funzionamento è semplice, è possibile selezionare uno o più files di cui si intende visualizzare il percorso completo. Dopodichè mediante il menù contestuale o la barra contestuale richiamare lo script appena salvato.





In questa finestra, è possibile selezionare una o più voci (mediante il tasto ctrl + click è possibile selezionarne più di una) dopodichè premendo sul tasto OK si ha la possibilità di copiare nella clipboard il percorso dei vostri files.

Spero che questo strumento vi sia d'aiuto, tendo a ribadire che è davvero strano che la Apple non abbia implementato in maniera nativa questo strumento, io lo trovo davvero comodo.
Alla prossima...Stay Tuned!!

14 dicembre 2008

Abilitare/disabilitare il multi-window Mode in Safari

Per chi come me utilizza Mac Os X potrebbe essere davvero utile un appleScript mediante il quale poter abilitare e disabilitare l'apertura di nuove finestre di Safari.
Di default Safari, tende ad aprire i link in nuove Finestre anzichè utilizzare un nuovo Tab. Questo rende la navigazione alquanto caotica. Personalmente non ricordo se esista una voce nel menù di Safari per gestire questa particolare opzione.

Una soluzione è quella di crearsi uno script per poter scegliere la configurazione desiderata mediante una seplice Dialog.
Vediamo il codice:
beep
set choice to (display dialog ("Vuoi abilitare/disabilitare Safari in single window mode?") buttons {"Cancella", "Abilita", "Disabilita"} default button 1 with icon 1 with title "SSWM")

if the button returned of choice is not equal to "Cancellal" then
if the button returned of choice is equal to "Abilita" then
-- Terminal command to enable SWM
set cmd to ("defaults write com.apple.Safari TargetedClicksCreateTabs -bool true")
else
-- Terminal command to disable SWM
set cmd to ("defaults write com.apple.Safari TargetedClicksCreateTabs -bool false")
end if

try
-- Execute command
set x to (do shell script cmd)
-- Positive feedback
set x to (result & "Operazione eseguita!")
on error e
-- Return Error
set x to e
end try

-- Display feedback
if the button returned of choice is equal to "Abilita" or "Disabilita" then

set choice2 to (display dialog ((x as string) & return & "E' necessario riavviare Safari. Riavviare ora?") buttons {"Yes", "No"} default button 1 with icon 1 with title "SSWM")

-- Quit and restart Safari
if the button returned of choice2 is equal to "Yes" then
if application "Safari" is running then
tell application "Safari"
quit
end tell
delay 1
tell application "Safari"
activate
end tell
end if
end if
end if
end if

Il risultato ottenuto è la seguente finestrella :





Abilitare/disabilitare visualizzazione file nascosti nel Finder di Mac Os X

Nonstante Mac Os X sia davvero semplice ed intuitivo da utilizzare a volte trovare nei menù alcune opzioni può risultare una noia, specialmente per chi, come me, non è dotato di una memoria eccellente.
Ad esempio spesso mi imbatto nel dilemma : "Dov'è la voce di menù del finder per abilitare/disabilitare la visualizzazione dei file nascosi?".
La risposta è ....

Se Maometto non va dalla montagna, la montagna va da Maometto.
Per cui mi sono creato uno script mediante cui abilitare e disabilitare i file nascosti tramite una semplicissima dialog.
Vediamo il codice :
tell application "Finder" to quit

display dialog "Visualizza Files nascosti…" buttons {"Si", "No", "Annulla"} default button 3 with title "File Nascosti"
copy the result as list to {buttonpressed}

try
if the buttonpressed is "No" then do shell script ¬
"defaults write com.apple.finder AppleShowAllFiles OFF"
if the buttonpressed is "Si" then do shell script ¬
"defaults write com.apple.finder AppleShowAllFiles ON"
end try

tell application "Finder" to launch

E' necessario quindi creare un nuovo file mediante lo script editor, salvare il file ed esegurlo quando desiderate.
Il risultato è il seguente :





27 novembre 2008

Inviare file come allegato mediante il Finder di Mac Os X

La potenza di Mac Os X come OS risiede proprio nella caratteristica di riuscire ad eseguire qualunque operazione con un numero di click davvero minimi. E' un OS davvero incredibile, ma nella sua incredibilità alcune funzionalità sembrano mancare, come ad esempio la possibilità di Inviare un file come allegato di una mail mediante il menù contestuale (quello che si ottiene mediante la pressione del tasto destro del mouse).

Per questo motivo ho creato uno script mediante cui, una volta aggiunto, è possibile selezionare uno o più file tramite il finder, premere il tasto destro del mouse e trovare sotto la voce Automator -> Invia tramite Mail.
Quello che bisogna fare sono i seguenti passi:
Aprire Automator
Creare un nuovo Script ad Hoc
Incollare il seguente script :
on run {input, parameters}
tell application "Mail"
set new_message to make new outgoing message with properties {visible:true}
repeat with theItem in input
set selectedItem to (theItem)
tell content of new_message
make new attachment with properties {file name:selectedItem} at after last paragraph
end tell
end repeat
end tell
return input
end run

Scegliere dal menù Archivio->Registra come plugin
Inserire come nome : Invia come allegato di posta elettronica
Scegliere nella combobox "Plugin in" la voce : Finder.

Adesso avrete questa funzionalità anche con Mac Os X.