Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

AppleScript > choisir une application parmi une liste

Discussion dans 'Développement Mac' créé par Clarusad, 18 Août 2008.

  1. Clarusad

    Clarusad Membre confirmé

    Inscrit:
    5 Février 2004
    Messages:
    385
    J'aime reçus:
    9
    Bonjour à tous,

    Depuis quelques jours je me casse la tête à faire fonctionner un AppleScript, mais en vain !

    J'aimerais obtenir une liste des applications ouvertes qui ont au moins une fenêtre (ça c'est ok), puis choisir un nom de processus dans cette liste (ça aussi c'est ok) et le quitter.
    C'est cette dernière étape qui coince.

    Après bien des essais, j'ai réussi à savoir que ce qui est dans ma liste n'est qu'une suite de noms (d'applications); mais pas une liste d'applications !

    Je ne sais pas si je suis très clair, en fait je n'arrive pas à faire comprendre à AppleScript que chaque item de ma liste correspond à une application. En effet, ApplScript me retourne : "Impossible de transformer "iCal" en type Application".

    Quelqu'un pourrait-il m'aider ?
    En vous remerciant pour vos réponses.

    Voici le script:
    Code (Text):
    tell application "System Events" to set allApps to ¬
        name of every application process whose file type is "Appl"
    set listeApps to {}
    repeat with nomApp in allApps
        tell application "System Events" to tell process nomApp to set nbrFenetres to count (every window)
        if nbrFenetres > 0 then set listeApps to listeApps & nomApp
    end repeat
    set choixApp to choose from list listeApps with prompt "Choisir une application à quitter"
    set choixAppQuit to (first item of choixApp)
    tell application "System Events" to quit choixAppQuit
     
  2. zacromatafalgar

    zacromatafalgar Membre émérite

    Inscrit:
    19 Mai 2004
    Messages:
    878
    J'aime reçus:
    81
    Salut,

    J'ai apporté quelques petites modifications à ton script et il fonctionne bien…

    Code (Text):
    tell application "System Events" to set allApps to ¬
        name of every application process whose visible is true --permet de  ne lister que les applications visibles (t'avais compris je suppose…)
    set listeApps to {}
    repeat with nomApp in allApps
        tell application "System Events" to tell process nomApp to set nbrFenetres to count (every window)
        if nbrFenetres > 0 then set listeApps to listeApps & nomApp
    end repeat
    set choixApp to choose from list listeApps with prompt "Choisir une application à quitter"
    set choixAppQuit to (first item of choixApp)
    tell application choixAppQuit to quit --on appelle directement l'application à quitter
    ;)
     
Chargement...