Différencier les machines Mac par programmation

Support Technique 4D

- Titre : Différencier les machines Mac par programmation

- Auteur : Support Technique 4D

- Parution : 23 juin 2008

- Licence : Copyright ® 2005-2008 4D s.a.. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

Produit : 4D 2004, 4D v11 SQL  ·  Plateforme : Mac ♪

Avec 4D, vous pouvez retrouver les informations logicielles et matérielles d'une machine en utilisant la commande LANCER PROCESS EXTERNE de 4D et la commande shell "system_profiler".

La commande LANCER PROCESS EXTERNE permet le lancement de toute application exécuatable dans le Terminal.

La commande du Terminal "system_profiler" remonte les informations matérielles et logicielles de la configuration courante.

En partant de là, vous pouvez exécuter le code suivant pour récupérer le nom du processeur et son modèle :

code 4D

C_TEXTE($input;$SystemeInfo;$ModeleInfo;$ProcesseurInfo)
LANCER PROCESS EXTERNE("system_profiler";$input;$SystemeInfo)
LANCER PROCESS EXTERNE("grep 'Processor Name'";$SystemeInfo;$ProcesseurInfo)
LANCER PROCESS EXTERNE("grep 'Model Name'";$SystemeInfo;$ModeleInfo)

La ligne 2 exécuter la commande du Terminal "system_profiler" et stocke le résultat dans la variable de type texte $SystemeInfo.

Les lignes 3 et 4 utilisent la commande "grep" pour faire une recherche sur la valeur de $SystemeInfo et retourner les lignes contenant le nom du processeur ("Processor Name") et le nom du modèle ("Model name"). Les valeurs sont stockées dans les variables de type texte $ProcesseurInfo et $ModeleInfo.

Un exemple de valeurs obtenues sur un MacBook Pro 15" :

$ProcesseurInfo = "Processor Name: Intel Core 2 Duo"
$ModeleInfo = "Model Name: MacBook Pro 15"

Cette routine peut être utilisée si votre application est amenée à tourner sur différentes machines et que vous avez besoin d'exécuter du code différent selon la machine.

Documentation :
· system_profiler
· LANCER PROCESS EXTERNE