Incremental

Comme promis à Ceetix, voici un programme utilisant intensivement les Apple Events. Les premières versions utilisaient AppleScript. Mais AppleScript est trop lent et certaines de ses caractéristiques évoluent avec les versions de Mac OSX.
Le but d'Incremental est de gérer-Créer des archivages. Pour cela il faut pouvoir créer des catalogues d'archivages existants, demander les informations sur les fichiers à cataloguer et comparer avec ce qui existe dans les catalogues. En fonction des résultats il faut archiver les nouveaux fichiers: soit dans un disque dur, soit sur des objets tells que CD ou DVD.
J'utilise "CDFinder" pour créer et gérer les catalogues, soit "Toast" soit "Finder" pour l'archivage des nouveaux fichiers. Les échanges avec CDFinder, Toast et le Finder sont faits (presque) exclusivement par des Apple Events.
Nota: Incremental est livré avec CDFinder gratuitement et est accessible à partir de son menu "Script".
Comme exemple d'écriture (pour ceux qui n'ont jamais utilisé cela), voici comment j'ajoute les attributs optionnels dans un Apple Event:
Le but d'Incremental est de gérer-Créer des archivages. Pour cela il faut pouvoir créer des catalogues d'archivages existants, demander les informations sur les fichiers à cataloguer et comparer avec ce qui existe dans les catalogues. En fonction des résultats il faut archiver les nouveaux fichiers: soit dans un disque dur, soit sur des objets tells que CD ou DVD.
J'utilise "CDFinder" pour créer et gérer les catalogues, soit "Toast" soit "Finder" pour l'archivage des nouveaux fichiers. Les échanges avec CDFinder, Toast et le Finder sont faits (presque) exclusivement par des Apple Events.
Nota: Incremental est livré avec CDFinder gratuitement et est accessible à partir de son menu "Script".
Comme exemple d'écriture (pour ceux qui n'ont jamais utilisé cela), voici comment j'ajoute les attributs optionnels dans un Apple Event:
// met les attributs: reco{'subj':'null'(), 'csig':'magn'(0x10000)}
//
- (OSErr)metAttribut:(AppleEvent *)evenement :(UInt32)valeur : (BOOL)metNULL
{
OSErr err = noErr;
AEDesc attribut ;
UInt32 ICI ;
ICI = valeur ;
if (metNULL)
{ err = AECreateDesc (typeNull, nil, 0L, &attribut) ;
err = AEPutAttributeDesc (evenement, 'subj', &attribut) ; // 'subj':'null'()
(void) AEDisposeDesc(&attribut);
} ;
err = AECreateDesc (typeUInt32, &ICI, sizeof(ICI), &attribut) ; // 'csig':'magn'(0x10000)
err = AEPutAttributeDesc (evenement, 'csig', &attribut) ;
(void) AEDisposeDesc(&attribut);
return (err) ; // traitement d'erreur à faire?
}
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En fait c'est un programme dont j'avais besoin, et je ne voulais pas refaire un "CDFinder + Toast" dans mon programme. Donc j'ai utilisé l'existant et ça marche très bien.