2013-08-22 1 views
7

Nouvelle question Applescript :) Je suis en train de créer une petite applescript qui me permettra de sélectionner plusieurs éléments dans une liste d'applications en cours d'exécution, puis de quitter ces applications sélectionnées. Quelque chose comme cela fonctionne mais plutôt que d'avoir à cliquer sur chaque boîte de dialogue, il serait beaucoup plus facile de choisir dans une liste.Applescript obtenir la liste des applications en cours d'exécution?

tell application "System Events" 
repeat with p in every process 
    if background only of p is false then 
     display dialog "Would you like to quit " & name of p & "?" as string 
    end if 
end repeat 
end tell 

Une aide précieuse serait grandement appréciée!

Merci!

Répondre

11

Essayez ceci:

tell application "System Events" 
    set listOfProcesses to (name of every process where background only is false) 
    tell me to set selectedProcesses to choose from list listOfProcesses with multiple selections allowed 
end tell 
--The variable `selectedProcesses` will contain the list of selected items. 
repeat with processName in selectedProcesses 
    do shell script "Killall " & quoted form of processName 
end repeat 
+0

fonctionne comme un charme !!! Ma dernière question est de savoir comment le ferais-tu sans la commande killall? Un peu comme, dites à l'application selectedProcesses de quitter. Merci! – user2555399

+0

Voir la partie inférieure du script de Parag au dessus. – user2555399

+0

Édité en ajoutant la partie de script de Parag. –

1

Vous pouvez essayer cette

tell application "System Events" 
     set AppName to name of every process whose background only is false 
     choose from list AppName OK button name "Ok" cancel button name "Cancel" 
    end 
5
tell application "System Events" 
    set processList to get the name of every process whose background only is false 
    set processNameList to choose from list processList with prompt "Select process to quit" with multiple selections allowed 
    if the result is not false then 
     repeat with processName in processNameList 
      do shell script "Killall " & quoted form of processName 
     end repeat 
    end if 
end tell 

enter image description here

+0

La partie supérieure de votre script n'a pas fonctionné pour moi mais la partie inférieure a fait! Merci! – user2555399

+0

Avez-vous une erreur? –

1

& (name of every process whose (name is "AppName") peuvent être ajoutés à Michele Percich's et Parag Bafna's solutions pour inclure des applications de la barre de menus spécifiques par nom .

tell application processName to quit peut être utilisé à la place de do shell script "Killall " & quoted form of processName.

tell application "System Events" 
    set processList to ¬ 
     (name of every process where background only is false) & ¬ 
     (name of every process whose ¬ 
      (name is "AppName") or ¬ 
      (name is "AnotherAppName")) 
    tell me to set selectedProcesses to choose from list processList with prompt "Select process(es) to quit:" with multiple selections allowed 
end tell 
if the result is not false then 
    repeat with processName in selectedProcesses 
     tell application processName to quit 
    end repeat 
end if 
2

vous pouvez utiliser ce script qui est beaucoup plus simple

tell application "Finder" 
    get the name of every process whose visible is true 
end tell 
Questions connexes