AEv-Utility

tabliertablier Membre
juin 2009 modifié dans Vos applications #1
Version 1.0 d'un logiciel de visualisation des Apple Events. L'intérêt est d'obtenir des représentations des AEv, sans passer par la console.
Pour l'essayer, le plus simple:
- ouvrir le dossier des scripts de l'ordinateur.
- Charger un script dans l'éditeur de script puis le sauver sous forme application.
- Glisser/déposer l'application obtenue sur l'icone de AEv-Utility.
- lire l'aide en ligne.

Pourquoi ai-je fait ce logiciel:
1 J'écris un tutoriel sur les AEv et il me faut un logiciel pratique pour voir les AEv que je programme.
2 le logiciel que j'utilisais précédemment (à† Monitor) ne marche pas sous 10.5 mais sous 10.4 seulement.
3 j'utilise souvent "AEBuildAppleEvent" pour créer des AEv. Cette fonction demande un format particulier des données.  AEv-Utility me donne un modèle de ce format pour chaque AEv analysé.

Documentations: "Apple Events programming guide", tn2022, tn2045, tn2046, tn2082, tn2084 et tn2106
(tn = technical note)

Attention: j'ai un G4, pas un Intel. J'ai compilé en "Universal", mais je ne garantis rien.

  ::) Merci d'avance pour vos essais.


NB:  Je viens de trouver un bug: il faut glisser/déposer sur la fenêtre et pas sur l'icone de AEv-Utility. Je vais rectifier corriger ce bug.

Réponses

  • tabliertablier Membre
    11:36 modifié #2
      :P Voila, c'est corrigé.
    C'etait juste un problème d'initialisation en retard du NSTableView par rapport au traitement du glisser/déposer. Idiot!!!

  • tabliertablier Membre
    11:36 modifié #3
    Pour info, J'ai essayé sur le iMac Intel d'un copain et ça marche!
    Bon, les Apple Events ne paraissent pas interresser grand monde!
  • CéroceCéroce Membre, Modérateur
    11:36 modifié #4
    Oui, c'est vrai  ::). Je garde l'info que ton logiciel existe pour le jour où j'en aurai besoin... pas dans l'immédiat.
  • tabliertablier Membre
    11:36 modifié #5
    Nouvelle version du programme qui n'utilise plus AppleScript, mais NSTask et NSPipe. Si vous l'essayez, lisez l'aide en ligne d'abord.

    Céroce: C'est un peu étonnant que peu de développeurs s'y intéressent quand on sait qu'Apple a écrit que c'est la principale technologie utilisée dans la communication entre processus, et une des plus efficace!
    Je pense qu'on en arrive là  au "problème des boà®tes noires". Pour faire un programme, on combine les boà®tes noires (les objets) suivant leurs propriétées. Mais on ne sait pas ce qu'il y a dans la boà®te! Est-ce important de le savoir? Est-ce inutile?
    Bon, c'est très phylosophique, alors je stop.
  • AliGatorAliGator Membre, Modérateur
    11:36 modifié #6
    dans 1245260792:
    C'est un peu étonnant que peu de développeurs s'y intéressent quand on sait qu'Apple a écrit que c'est la principale technologie utilisée dans la communication entre processus, et une des plus efficace!
    Ah ? Et NSDistributedNotificationCenter alors ???
  • tabliertablier Membre
    11:36 modifié #7
      8--) Plutôt que de donner mon avis, voici la traduction-résumé d'un texte d'Apple sur les technologies de l"interprocess communication" :

    Les objets distribués pour Cocoa

    Les  "Distributed Objects"  permettent à  différentes applications (ou à  différents threads de la même application) d'utiliser un mecanisme transparent de communication, sur le même ordinateur ou à  travers les réseaux.  La facilité d'implantation se paye par des performances moindres.  Les objets distribués sont les moins efficients de toutes ces techniques.

    Les Apple Events

    Sous Mac OS X, les "Apple Events" sont la principale technologie utilisée pour la communication entre processus et pour le scriptage d'application. Leurs structures sont parfaitement définies et permettent de faire des demandes (ou des réponses) complexes. Normalement, toute application devrait pouvoir répondre à  un ensemble minimum d'Apple Events  appelé Standard Suite. Cette suite a été définie par Apple. Les Apple Events se programment en C et Carbon.

    Les Notifications distribuées

    Une "Distributed notification" est un message posté par une application dans un centre de notification. Ce centre retransmet le message aux applications qui se sont inscrites dans ce centre pour recevoir ce type de message.  Ce sont de vrais notifications en ce sens qu'aucun mecanisme de réponse n'existe et qu'il n'y a pas moyen de restreindre le nombre des receveurs!  Les notifications distribuées font partie du Core Foundation

    Les Notifications BSD

    Introduites sous Mac OS X 10.3, les "BSD notifications" sont les plus performantes des notifications et comportent de nombreux avantages par rapport au mecanisme de notification du Core Foundation. Les routines sont définies dans notify.h.  Les notifications BSD sont utilisables sous Cocoa et sous Carbon. Utiliser la commande  man 3 notify  dans le terminal pour voir le manuel. Pour plus de renseignements consulter Mac OS X Man Pages

    Sockets, Ports, et Streams

    Un socket représente une extrémité d'un canal de communication. Un port est un canal entre deux processus ou deux threads. Le core foundation comporte des abstractions pour les sockets (CFSocket/CFRunLoop) et les ports (CFMessagePort).  Cocoa utilise une classe NSStream qui est définie dans le "Fondation framework reference".  Voir également:  "CFSocket Reference", "CFReadStream Reference et "CFWriteStream Reference"

    Les Pipes BSD

    Un pipe est un canal de communication créé typiquement entre un processus père (l'émetteur) vers un processus fils (le receveur). Le pipe utilise un tampon pour gérer les données. La méthode FIFO (first in - first out)** est utilisée pour la transmission. Les pipes sont efficaces pour créer des canaux de communications entre processus, mais en général moins efficaces que les "CFStreams.

    La mémoire partagée (Shared Memory)

    C'est une zone de la mémoire qu'un processus se réserve et met en commun avec d'autre processus. Les données sont communes et non plus copiées de l'un à  l'autre. L'accès à  la zone se fait en fonction des permissions de chaque processus. C'est  efficace, mais comporte des risques importants car tout les processus qui accèdent à  la zone peuvent être affectés par le plantage d'un seul d'entre eux.

    Les messages Mach (Mach messaging)

    Les objets Mach ports implémentent une construction efficace pour tranférer des messages entre processus. Mais il n'est pas souhaitable de les utiliser car ils sont reliés aux interfaces du noyaux, interfaces qui peuvent changer d'une version de Mac OS X à  l'autre. La seule raison de les utiliser est de vouloir écrire du programme qui fonctionne directement dans le noyau.


    Bien sur, les AppleEvents sont utilisés un peu partout de manières souvent masquées:
    AppleScript, la classe NSEvent et ses méthodes ..... etc
Connectez-vous ou Inscrivez-vous pour répondre.