Functions > Registry >


RegWrite

Crée une clé ou une valeur dans la base de registre.

RegWrite ( "keyname" [, "valuename", "type", value] )

Paramètres

keyname La clé de la base de registre à écrire. Si aucun autre paramètre n'est spécifié cette clé sera simplement créée.
valuename [optionnel] Le nom de la valeur à écrire.
type [optionnel] Type de clé à écrire: "REG_SZ", "REG_MULTI_SZ", "REG_EXPAND_SZ", "REG_DWORD", "REG_QWORD", ou "REG_BINARY".
value [optionnel] La valeur à écrire.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0 et définit @error <> 0 s'il y a une erreur d'écriture dans la clé ou dans la valeur.
@error: 1 = impossible d'ouvrir la clé demandée
2 = impossible d'ouvrir la clé principale demandée
3 = impossible de se connecter à distance au registre
-1 = impossible d'ouvrir la valeur demandée
-2 = type de valeur non pris en charge

Remarques

Une clé de la base de registre doit commencer par "HKEY_LOCAL_MACHINE" ("HKLM") ou "HKEY_USERS" ("HKU") ou "HKEY_CURRENT_USER" ("HKCU") ou "HKEY_CLASSES_ROOT" ("HKCR") ou "HKEY_CURRENT_CONFIG" ("HKCC").

Lors de l'exécution sur Windows 64 bits si vous voulez écrire une clé ou une valeur spécifique à l'environnement 64 bits, vous devez suffixer HK ... avec 64 i.e. HKLM64.

AutoIt supporte les clés de la base de registre de type REG_BINARY, REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_QWORD, et REG_DWORD.

Pour accéder à la valeur par (par défaut) utilisez "" (une chaîne vide) pour le nom de la valeur.

Lors de l'écriture d'une clé REG_MULTI_SZ vous devez séparer chaque valeur par @LF. La valeur ne doit pas se terminer par @LF sauf si vous voulez une chaîne vide (Voir exemple).

Il est possible d'accéder à des registres à distance en utilisant des noms de valeur sous la forme "\\nom_ordinateur\nom_de_la_clé". Pour utiliser cette fonctionnalité vous devez avoir les droits d'accès corrects.

En relation

RegDelete, RegEnumKey, RegEnumVal, RegRead

Exemple

#include <MsgBoxConstants.au3>

Example()

Func Example()
    ; Regarde si la clé de registre existe déjà, pour ne pas endommager le système de l'utilisateur.
    RegRead("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key1")

    ; @error est défini <> 0 lors de la lecture d'une clé de registre qui n'existe pas.
    If Not @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Une erreur s'est produite, la clé de registre temporaire  'AutoIt_Example' semble exister déjà.")
        Return False
    EndIf

    ; Write a single REG_SZ value to the key "Key1".
    RegWrite("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key1", "REG_SZ", "Ceci est un exemple de RegWrite")

    ; Ecrit la valeur REG_MULTI_SZ sur "Line 1" et "Line 2". Ajoute toujours un caractère de saut de ligne supplémentaire lors de l'écriture d'une valeur REG_MULTI_SZ.
    RegWrite("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key2", "REG_MULTI_SZ", "Line 1" & @LF & "Line 2" & @LF)

    ; Ecrit la valeur REG_MULTI_SZ sur "Line 1". Ajoute toujours un caractère de saut de ligne supplémentaire lors de l'écriture d'une valeur REG_MULTI_SZ.
    RegWrite("HKEY_CURRENT_USER\Software\AutoIt_Example", "Key3", "REG_MULTI_SZ", "Line 1" & @LF)

    ; Ajoute un message pour naviguer dans RegEdit.exe manuellement.
    MsgBox($MB_SYSTEMMODAL, "", "Ouvre RegEdit.exe et navigue vers la clé de registre "HKEY_CURRENT_USER\Software\AutoIt_Example"".")

    ; Supprime la clé de registre temporaire.
    RegDelete("HKEY_CURRENT_USER\Software\AutoIt_Example")
EndFunc   ;==>Example