Précédent | Sommaire | Suivant

4.2 Variables

Toutes les variables sont globales et peuvent être utilisées dans des sections ou des fonctions. Notez que, par défaut, les variables sont limitées à 1024 caractères. Pour étendre cette limite, compilez NSIS avec une plus grande valeur de NSIS_MAX_STRLEN dans les options de compilation ou utilisez la compilation spéciale.

4.2.1 Variables utilisateur

$VARNAME

Les variables utilisateur peuvent être déclarées avec la commande Var. Vous pouvez utiliser ces variables pour stocker des valeurs, travailler avec la manipulation de chaînes de caractères, etc.

4.2.1.1 Var

[/GLOBAL] nom_var

Déclare une variable utilisateur. Les caractères autorisés sont : [a-z][A-Z][0-9] et '_'. Toutes les variables définies sont globales, même si définies dans une section ou une fonction. Pour rendre cela clair, les variables définies dans une section ou une fonction doivent utiliser le paramètre /GLOBAL. Le paramètre /GLOBAL n'est pas requis hors des sections et fonctions.

Var exemple

Function testVar
  Var /GLOBAL exemple2

  StrCpy $exemple "valeur exemple"
  StrCpy $exemple2 "une autre valeur exemple"
FunctionEnd

4.2.2 Autres variables disponibles

$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $R0, $R1, $R2, $R3, $R4, $R5, $R6, $R7, $R8, $R9

Les registres. Ces variables peuvent être utilisées comme des variables utilisateur, mais sont généralement utilisées dans les fonctions partagées ou macros. Vous n'avez pas besoin de les déclarer, ainsi, vous n'aurez pas de conflit lorsque vous utiliserez du code partagé. En utilisant ces variables dans du code partagé, il est recommandé que vous utilisiez la pile pour enregistrer et restaurer leurs valeurs originales. Ces variables peuvent aussi être utilisées pour la communication avec les plug-ins, car elles peuvent être lues et écrites par les plug-ins. $INSTDIR

Le répertoire d'installation ($INSTDIR est modifiable en utilisant StrCpy, ReadRegStr, ReadINIStr, etc. - Cela peut être utilisé, par exemple, dans la fonction .onInit pour faire une détection avancée de l'emplacement de l'installation).

Notez que dans le code de désinstallation, $INSTDIR contient le répertoire où se trouve le désinstalleur. Il ne contient PAS nécessairement la même valeur que l'installateur. Par exemple, Si vous écrivez le désinstallateur dans $WINDIR et que l'utilisateur ne le déplace pas, $INSTDIR sera $WINDIR dans le désinstallateur. Si vous écrivez le désinstallateur dans un autre emplacement, vous devriez garder le $INSTDIR d'installation dans le registre ou un stockage alternatif et le lire dans le désinstallateur.

$OUTDIR

Le répertoire de destination courant (défini implicitement via SetOutPath ou explicitement via StrCpy, ReadRegStr, ReadINIStr, etc)

$CMDLINE

La ligne de commande de l'installation. Le format de la ligne de commande peut être:

  • "rep\complet de\installation.exe" PARAMETRE PARAMETRE PARAMETRE
  • installation.exe PARAMETRE PARAMETRE PARAMETRE
  • Pour récupérer la portion PARAMETER, voir GetParameters dans l'appendice des fonctions utiles (voir section B.3). Si /D= est spécifié en ligne de commandes (pour remplacer le répertoire d'installation) il ne sera pas récupéré par $CMDLINE.

$LANGUAGE

L'identifiant de la langue en cours d'utilisation. Par exemple, Français est 1036. Vous ne pouvez modifier cette variable que dans .onInit.

4.2.3 Variables constantes

Les variables constantes peuvent aussi être utilisée dans le paramètre de InstallDir.

Notez que certaines nouvelles constantes ne fonctionneront pas sur tous les systèmes. Par exemple, $CDBURN_AREA ne fonctionnera que sous Windows XP et supérieur. Si elle est utilisée sous Windows 98, elle sera vide. A moins d'être indiqué, une constante doit être disponible sous tous les systèmes.

$PROGRAMFILES, $PROGRAMFILES32, $PROGRAMFILES64

Le répertoire program files (habituellement C:\Program Files mais détecté dynamiquement).Sous Windows x64, $PROGRAMFILES et $PROGRAMFILES32 pointent vers C:\Program Files (x86) alors que $PROGRAMFILES64 pointe vers C:\Program Files. Utilisezse $PROGRAMFILES64 lors de l'instalaltion d'applications x64.

$COMMONFILES, $COMMONFILES32, $COMMONFILES64

Le répertoire des fichiers communs. Il s'agit d'un répertoire pour les composants partagés entre les applications (habituellement C:\Program Files\Common Files mais détecté dynamiquement). Sous Windows x64, $COMMONFILES et $COMMONFILES32 pointent vers C:\Program Files (x86)\Common Files alors que $COMMONFILES64 pointe vers C:\Program Files\Common Files. Utilisez $COMMONFILES64 lors de l'instalaltion d'applications x64.

$DESKTOP

Le répertoire du Bureau de Windows (habituellement C:\windows\bureau mais détecté dynamiquement). Le contexte de cette constante (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

$EXEDIR

Le répertoire contenant l'exécutable de l'installation. (peut être techniquement modifié, mais n'est peut être pas non plus une bonne idée)

$EXEFILE

Le nom de base de l'exécutable de l'installateur.

$EXEPATH

Le chemin complet de l'exécutable de l'installation.

${NSISDIR}

Symbole contenant le répertoire d'installation de NSIS. Utile si vous voulez utiliser des ressources présentes dans le répertoire de NSIS e.x. Icônes, interfaces graphiques etc.

Quand compilé avec le support pour garder makensis et les données dans le même emplacement (le défaut sous Windows), c'est au même emplacement que makensis, sur les autres plateformes c'est défini au moment de la compilation (Voir le fichier INSTALL pour des infos). Dans les deux instances vous pouvez le modifier au lancement en définissant la variable d'environnement NSISDIR. Voir section 3.1.3 pour plus d'infos.

$WINDIR

Le répertoire Windows (habituellement C:\windows voir C:\winnt mais détecté dynamiquement)

$SYSDIR

Le répertoire système de Windows (habituellement C:\windows\system ou C:\winnt\system32 mais détecté dynamiquement)

$TEMP

Le répertoire temporaire système (habituellement C:\windows\temp mais détecté dynamiquement)

$STARTMENU

Le dossier du Menu Démarrer (utile pour l'ajout d'éléments en utilisant CreateShortCut). Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

$SMPROGRAMS

Le dossier Programmes du Menu Démarrer (à utiliser, même si vous voulez $STARTMENU\Programmes). Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

$SMSTARTUP

Le dossier Programmes > Démarrage du Menu Démarrer. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

$QUICKLAUNCH

La barre de lancement rapide, pour l'Active Desktop de IE4 et supérieur. Si cette barre n'est pas disponible, retourne $TEMP.

$DOCUMENTS

Le répertoire Mes Documents. Un chemin typique pour l'utilisateur courant est C:\Documents and Settings\Moi\Mes Documents. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

Cette constante n'est pas disponible sous Windows 95 sans Internet Explorer 4 d'installé.

$SENDTO

Le répertoire contenant les raccourcis du menu Envoyer vers.

$RECENT

Le répertoire contenant les raccourcis vers les documents récemment utilisés par l'utilisateur.

$FAVORITES

Le répertoire contenant les raccourcis des documents, sites web favoris (...) de l'utilisateur. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

Cette constante n'est pas disponible sous Windows 95 sans Internet Explorer 4 d'installé.

$MUSIC

Le répertoire des fichiers musicaux de l'utilisateur. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

Cette constante est disponible sous Windows XP, ME et supérieur.

$PICTURES

Le répertoire des images de l'utilisateur. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

Cette constante est disponible sous Windows XP, ME et supérieur.

$VIDEOS

Le répertoire des fichiers vidéo de l'utilisateur. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

Cette constante est disponible sous Windows XP, ME et supérieur.

$NETHOOD

Ce répertoire contient des objets pouvant exister dans le dossier Voisinage Réseau.

Cette constante n'est pas disponible sous Windows 95 sans Internet Explorer 4 ni Active Desktop d'installé.

$FONTS

Le répertoire des polices systèmes.

$TEMPLATES

Le répertoire des modèles de documents. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

$APPDATA

Le répertoire des données des applications. La détection du répertoire utilisateur nécessite Internet Explorer 4 ou supérieur. La détection du répertoire de tous les utilisateurs nécessite Internet Explorer 5 et supérieur. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

Cette constante n'est pas disponible sous Windows 95 sans Internet Explorer 4 ni Active Desktop d'installé.

$LOCALAPPDATA

Le répertoire local (non-persistant) des données d'application.

Cette constante est disponible sous Windows 2000 et supérieur.

$PRINTHOOD

Le répertoire contenant les objets liés pouvant exister dans le répertoire Imprimantes.

Cette constante n'est pas disponible sous Windows 95 et Windows 98.

$INTERNET_CACHE

Le répertoire des fichiers Internet temporaire d'Internet Explorer.

Cette constante n'est pas disponible sous Windows 95 et Windows NT sans Internet Explorer 4 ni Active Desktop d'installé.

$COOKIES

Le répertoire des cookies d'Internet Explorer.

Cette constante n'est pas disponible sous Windows 95 et Windows NT sans Internet Explorer 4 ni Active Desktop d'installé.

$HISTORY

Le répertoire de l'historique d'Internet Explorer.

Cette constante n'est pas disponible sous Windows 95 et Windows NT sans Internet Explorer 4 ni Active Desktop d'installé.

$PROFILE

Le répertoire du profil de l'utilisateur. Un chemin typique serait C:\Documents and Settings\Moi.

Cette constante n'est disponible que sous Windows 2000 et supérieur.

$ADMINTOOLS

Un répertoire ou les outils administratifs sont stockés. Le contexte de cette variable (Tous les Utilisateurs ou Utilisateur Courant) dépend du paramétrage SetShellVarContext. Par défaut, il s'agit de l'utilisateur courant.

Cette constante est disponible sous Windows 2000, ME et supérieur.

$RESOURCES

Le répertoire des ressources où sont stockés les thèmes et autres ressources de Windows (habituellement C:\Windows\Resources mais détecté dynamiquement).

Cette constante n'est disponible que sous Windows XP et supérieur.

$RESOURCES_LOCALIZED

Le répertoire des ressources localisées où sont stockés les thèmes et autres ressources Windows (habituellement C:\Windows\Resources\1033 mais détecté dynamiquement).

Cette constante n'est disponible que sous Windows XP et supérieur.

$CDBURN_AREA

Un répertoire où les fichiers en attente d'être gravés sur CD sont stockés.

Cette constante n'est disponible que sous Windows XP et supérieur.

$HWNDPARENT

La valeur décimale HWND de la fenêtre parente.

$PLUGINSDIR

Le répertoire temporaire créé lors de la première utilisation d'un plug-in ou bien lors de l'appel d’InitPluginsDir (voir section 4.8.6.1). Ce répertoire est automatiquement supprimé lorsque l'installation se termine. Cela en fait un dossier idéal pour vos fichiers INI pour InstallOptions, pour les images du plug-in splash, or ou pour tout autre fichier qu'un plug-in peut avoir besoin.

4.2.4 Variables utilisées dans les chaînes de caractères

$$

Utilisé pour représenter $.

$\r

Utilisé pour représenter un retour chariot (\r).

$\n

Utilisé pour représenter une nouvelle ligne (\n).

$\t

Utilisé pour représenter une tabulation (\t).

${SYMBOL}

Ou SYMBOL est le nom de quelque chose défini globalement, et qui sera remplacé par la valeur de ce symbole. L'ordre d'appel des symboles est important.

Name "Programme de test ${VERSION}"
!define VERSION "V.1.0"

Ce code va définir le nom de l'installation comme "Programme de test ${VERSION}". La même chose se produit si le symbole n'a pas été défini.

!define VERSION "V.1.0"
Name "Programme de test ${VERSION}"

Ce code défini bien le nom de l'installation en "Programme de test V.1.0"

Pour plus d'informations, voir la Compilation conditionnelle.

Précédent | Sommaire | Suivant


A propos | Contacts | Publicité | Info légales | © Todae 2006-2008

Sites partenaires : discount | avis rémunérés| sorties DVD | Winamp