[?]   dans   mode   trier par   

[<] Sujet : [AS] Lancer un script depuis du code ObjC
De : FresLoc <anonyme@...>
Date : 2008-01-27 21:11:50

Sujet : Re: [AS] Lancer un script depuis du code ObjC
De : Daniel Varlet <anonyme@...>
Date : 2008-01-28 18:12:16

À 21:11 +0100 le 27.1.2008, FresLoc écrivait au sujet de "[AS] Lancer un script depuis du code ObjC" :
>Bonsoir,

Salut à toi, et bienvenue.

>Cette question est probablement assez basique et venant de m'inscrire 
>ici, je ne sais pas trop comment ça fonctionne, au cas ou toutes mes
>excuses...
>J'ai pas mal lu tout ce WE sur AppleScript, mais je ne suis pas 
>encore opérationnel...
>
>C'est assez simple en fait :

Je n'en doute pas...

>
>Je voudrais depuis Cocoa, du code ObjC envoyer une NSString sur la
>zone en cours de saisie qui donc est forcément au premier plan...

Mouais, l'utilisateur est farceur, mais bon OK..

>L'application en tâche de fond connecte un appareil en Bluetooth et

Quelle application? La principale? Un helper? Un applet AS?

>doit envoyer les données sur l'appli de premier plan...

Encore une autre appli...

>
>Au cas ou cette appli est au premier plan

Là je suis perdu.

>si le script peut l'envoyer
>au fond, ça n'est que mieux, mais pas indispensable...

Un script AS peut masquer une appli ou en faire venir une au premier plan.
Sauf erreur, la bazarder en "fin" de *toutes* les applis visibles est peut-être possible, mais certainement un peut lourd à scripter. Si c'est optionnel mieux vaut garder ça pour les touches finales à faire un jour de pluie.

>
>Par contre je souhaiterais que dans ce code il y ait appel a un objet 
>script séparé de façon a modifier ce dernier indépendamment...

Dans quel code? Cocoa? AS? Quel objet script?
Je pousse un peu, car je pense avoir saisi, mais pas la peine de démarrer sur de fausses intuitions. Voir néanmoins (1) en me basant sur le titre de ton message.

>A vous lire...
>
>Merci
>
>Cordialement - Gilles

Je n'ai donc pas compris la/les questions. Si c'est pour savoir comment lancer un script AS en Cocoa, j'ai des notions (sans plus). Je connais au moins trois façons.
Et/Si c'est pour le script AS  lui-même, c'est encore autre chose.
Bref, il faudrait éclaircir ta, ou tes questions. Et simplifier si possible.

(1)
En Cocoa, pour lancer un fichier script, ça peut donner ça (extrait d'un projet test).

- (IBAction)launchAS_externalScript:(id)sender
{
	NSLog(@"%@", NSStringFromSelector(_cmd));		// Debug
	
	NSDictionary *asError = nil;
	
	// Script path
	NSBundle *bundle = [NSBundle mainBundle];
	NSString *path = [bundle pathForResource:@"toto" ofType:@"scpt" inDirectory:@"Scripts"];
	if (nil == path) {
		NSLog(@"Missing script.");
		return;
	}
	NSURL *url = [NSURL fileURLWithPath:path];
	NSLog(@"url: %@", url);
	
	// Load script
	NSAppleScript *script = [[NSAppleScript alloc] initWithContentsOfURL:url error:&asError];
	NSLog(@"%@", [script source]);		// OK même avec erreur de compil

	if (nil != asError) {
		NSLog(@"%@", asError);
		return;
	}
	
	[script executeAndReturnError:&asError];
	if (nil != asError) {
		NSLog(@"%@", asError);
		return;
	}
}

Il y a des subtilités à régler dans Xcode (v2.0):

- Pour que le script soit placé directement dans le dossier ".../Contents/Resources/Scripts" à la compile, rajouter une Build Phase "Compile AppleScripts" dans le target, avec les scripts qui vont bien. Même s'il s'agit de scripts déjà compilés.
Placer les scripts dans ce dossier du Bundle permet d'y accéder si on utilise la fonctionnalité "Assigning an AppleScript to a Cocoa Object" d'Interface Builder. Autre manière, sans code, utilisée entre autre par ASStudio. cf la doc minable d'IB (salut Alain).
Pas la peine de perdre 10 minutes (seulement? hem...) que j'ai perdu pour trouver ça.

- Ajouter aux Linked Frameworks: AppleScriptKit.framework.

A+

-- 
Daniel

_______________________________________________
Applescript_fr mailing list
anonyme@...
http://listes.patpro.net/mailman/listinfo/applescript_fr

Sujet : Re: [AS] Lancer un script depuis du code ObjC
De : FresLoc <anonyme@...>
Date : 2008-01-28 22:43:14

Sujet : Re: [AS] Lancer un script depuis du code ObjC
De : Daniel Varlet <anonyme@...>
Date : 2008-02-06 16:51:37

Apple, AppleScript, AppleScript Studio, AppleTalk, AppleWorks, ColorSync, Finder, HyperCard, iBook, iLife, iMac, iWork, Keynote, Mac, Macintosh, Mac OS, Pages, Panther, PowerBook, Power Mac, Power Macintosh, QuickTime, Safari, Tiger, Xcode sont des marques déposées par Apple Computer, Inc., enregistrées aux Etats-Unis et dans les autres pays. Liste officielle