La référence Microsoft (KB101230) à propos du type
REG_EXPAND_SZ
indique qu'il sert à écrire et lire du texte
contenant des variables d'environnement comme par exemple :
Le dossier de Windows est "%windir%.
En réalité, ce type de donnée peut être utilisé aussi pour
traiter des données formatées, comme par exemple (en VB):
"This is my text with a line feed" & VbCrLf & "This is a new line. Here is a Tab:" & vbTab & "After the Tab."
Ce texte contient un saut de ligne et une tabulation à la 2ème ligne.
L'utilisation de ce type de donnée peut s'avérer utile
en particulier pour éviter d'utiliser le type plus
complexe REG_MULTI_SZ.
Pour vérifier cette confirmation, voici un script complet mis à votre disposition
(à noter que cette remarque est valable pour n'importe quel langage de
programmation pour Windows utilisant les API
RegSetValueEx et RegQueryValueEx):
'==========================================================================
' AUTHOR: Abdel YEZZA
' DATE : 05/11/2007
'
' COMMENT: Demonstrates writting and reading formated text (multi-line)
' to/from the registry using REG_EXPAND_SZ data type
'
'==========================================================================
Option Explicit
Dim WshShell, bKey
Set WshShell = WScript.CreateObject("WScript.Shell")
Call Main()
Sub Main()
WriteToReg "HKCU", "KeyTest\ValueTest", "This is my text with a line feed" & VbCrLf & _
"This is new line. Here is a Tab:" & vbTab & "After the Tab."
MsgBox "Read value: " & ReadFromReg("HKCU", "KeyTest\ValueTest")
Set WshShell=Nothing
End Sub
Function ReadFromReg(Hkey, strKey)
ReadFromReg = WshShell.RegRead(Hkey + "\" + strKey)
End Function
sub WriteToReg(Hkey, strKey, strVal)
WshShell.RegWrite Hkey + "\" + strKey, strVal, "REG_EXPAND_SZ"
End Sub
Voici la figure illustrant le résultat dans la base de registre :
|