Recommend Me


Jeudi 19 janvier 2006

Cocoa et AppleScript

Voici un ensemble d’articles, de notes, de ce que vous voulez qui concernent mes expérimentations avec Cocoa et AppleScript. Certaines sont des concaténations (plus ou moins bien traduites) de différentes sources trouvées sur Internet. Malheureusement il se peut que la référence de l’une ou l’autre de ces sources se soit perdu dans mes archives. Si vous êtes capable de mettre un nom, une adresse, un mail sur une partie de mes notes n’hésitez pas à me le faire savoir…

Je n’ai pas encore découvert la perle rare des site AppleScript. Ce n’est pas tout à fait vrai et je vous conseil tout de même d’allez voir iScript.fr ou le non moins excellent site trad.applescript proposant la traduction française de nombreuses docs. Sur scripteur.com vous trouverez des bouts de code facilement adaptables à vos besoins.

Pour Cocoa la référence en la matière est le site développeur Apple. Mais il existe au détour de Google une multitude de sites qui méritent que l’on s’y attarde. Celui par lequel je passe le plus souvent, et que je vous recommande particuliairement, est Project:Omega. CocoaDev est aussi un bon point de départ si vous cherchez un bout de code. Je vous engage également à aller jetter un oeil sur MacDevCenter d’O'Reilly.

Et puisque nous parlons d’O'Reilly, sachez que si vous souhaitez de la documentation papier, Cocoa in a Nutshell est un des incontournable à placer sur votre table de nuit à côté de Cocoa® Programming for Mac® (également connu chez Eyrolles sous le titre Cocoa par la pratique) AppleScript - Maîtrise complète vous donnera de bonnes bases pour aborder AppleScript.

Souvenez vous en lisant les pages qui suivent, qu’il s’agit avant tout de notes personnelles. Cela ne veut pas pour autant dire que je ne les modifierai pas si vous me le suggérez. Finalement si ce qui suit est en ligne et que vous le lisez, peut-être est ce parce que vous y trouvez votre bonheur. N’hésitez pas à me demander/proposer des corrections, améliorations, …

  • Créer un prefPane sous OSX
  • Créer un menu dans la barre d’icônes de MacOSX
  • Créer une application à tiroir
  • Ajouter une barre d’outils à une application


Mémo Cocoa

Convertir un NSData en NSString et vise versa

NSString* aStr; aStr = [[NSString alloc] initWithData:aData                           encoding:NSASCIIStringEncoding];
NSData* aData; aData = [aStr dataUsingEncoding: NSASCIIStringEncoding];

Créer ou lire du RTF depuis un NSTextView

NSTextView *myTextView; // create RTF file [myTextView writeRTFDToFile: @"myFile.rtf" atomically: YES]; // read from RTF file [myTextView readRTFDFromFile: @"myFile.rtf"];

Charger une ressource du bundle courant

NSBundle *thisBundle =   [NSBundle bundleForClass:[self class]]; // si le type correspondant en fait a l'extension // est nulle (nil) le chemin retourné est le premier // pour lequel le nom du fichier match exactement NSString *resourcePath =   [thisBundle pathForResource:@"fichier" ofType:nil];

Obtenir le nombre de processeurs d’une machine

CPUCount.h

#import <Foundation/Foundation.h> @interface CPUCount : NSObject {   host_name_port_t       host;   host_basic_info_data_t info;   unsigned int           iNumberOfCPUs; } - (id)init; - (int)numCPUs; @end

CPUCount.m

#import "CPUCount.h" @implementation CPUCount - (id)init {   host = mach_host_self();   unsigned int count = HOST_BASIC_INFO_COUNT;   host_info(host, HOST_BASIC_INFO, (host_info_t)&info, &count);   // Set the number of CPUs   iNumberOfCPUs = [self numCPUs];       return self; } - (int)numCPUs {   processor_cpu_load_info_t tCPUInfo;   kern_return_t             tKernReturn;   unsigned int              uiNumberOfProcessor;   mach_msg_type_number_t    tMachMsgType;   tKernReturn = host_processor_info( host,                            PROCESSOR_CPU_LOAD_INFO,                            &uiNumberOfProcessor,                            (processor_info_array_t *)&tCPUInfo,                            &tMachMsgType );   if( tKernReturn != KERN_SUCCESS ) {     return 0;   } else {     vm_deallocate( mach_task_self(),                    (vm_address_t)tCPUInfo,                    (vm_size_t)(tMachMsgType * sizeof(*tCPUInfo)) );                           return (int)uiNumberOfProcessor;   } } @end


Mémo AppleScript

Monter un répertoire partagé sur le réseau

tell application "Finder"   mount volume "afp://username:password@machinename.local/sharename" end tell
tell application "Finder"   open location "afp://username:password@serverip/sharename" end tell

De bonnes idées aussi ici

Envoyer un mail

tell application "Mail"   set newMessage to make new outgoing message with     properties {subject:"Test", content:"Ceci est un test d'envoi     de Mail avec AppleScript" & return & return & "G." & return &     return & "---"}   tell newMessage     set visible to true     set sender to "moi@ici.com"     make new to recipient at end of to recipients with properties {name:"",       address:"toi@labas.com"}   end tell   send newMessage end tell

Récupérer le login de l’utilisateur courant

set username to the second word of (characters (offset of "Users" in path to ¬         preferences as string) through (length of (path to preferences as string)) of ¬         (path to preferences as string) as string)

Récupérer le SSID du réseau Wifi

set AirportName to do shell script "system_profiler SPAirPortDataType|awk -F\": \" '/Current Wireless Network/{print $2}'"

Lire un fichier ligne par ligne

set fileReference to open for access ":path:to:file" with permission set lines to paragraphs of (read fileReference) repeat with currentLine in lines   if length of currentLine is greater than 0 then     -- faire quelque chose avec currentLine ...   end if end repeat close access fileReference
• • •

Pas de commentaire »

Pas encore de commentaire.

RSS des commentairesTrackBack URI

Laisser un commentaire

You must be logged in to post a comment.

Powered by: WordPress • Template adapted from the Simple Green' Wench theme - RSS