Funzione RegSetValueExA (winreg.h)

Imposta i dati e il tipo di un valore specificato in una chiave del Registro di sistema.

Sintassi

LSTATUS RegSetValueExA(
  [in]           HKEY       hKey,
  [in, optional] LPCSTR     lpValueName,
                 DWORD      Reserved,
  [in]           DWORD      dwType,
  [in]           const BYTE *lpData,
  [in]           DWORD      cbData
);

Parametri

[in] hKey

Handle per una chiave del Registro di sistema aperta. La chiave deve essere stata aperta con il diritto di accesso KEY_SET_VALUE. Per altre informazioni, vedere Sicurezza e diritti di accesso delle chiavi del Registro di sistema.

Questo handle viene restituito dalla funzione RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx o RegOpenKeyTransacted . Può anche essere una delle chiavi predefinite seguenti:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
La versione Unicode di questa funzione supporta le chiavi predefinite aggiuntive seguenti:
  • HKEY_PERFORMANCE_TEXT
  • HKEY_PERFORMANCE_NLSTEXT

[in, optional] lpValueName

Nome del valore da impostare. Se un valore con questo nome non è già presente nella chiave, la funzione lo aggiunge alla chiave.

Se lpValueName è NULL o una stringa vuota, "", la funzione imposta il tipo e i dati per il valore predefinito o senza nome della chiave.

Per altre informazioni, vedere Limiti delle dimensioni degli elementi del Registro di sistema.

Le chiavi del Registro di sistema non hanno valori predefiniti, ma possono avere un valore senza nome, che può essere di qualsiasi tipo.

Reserved

Questo parametro è riservato e deve essere zero.

[in] dwType

Tipo di dati a cui punta il parametro lpData . Per un elenco dei tipi possibili, vedere Tipi di valore del Registro di sistema.

[in] lpData

Dati da archiviare.

Per i tipi basati su stringhe, ad esempio REG_SZ, la stringa deve essere con terminazione Null. Con il tipo di dati REG_MULTI_SZ, la stringa deve essere terminata con due caratteri Null .

Nota lpData che indica che un valore Null è valido, tuttavia, se questo è il caso, cbData deve essere impostato su '0'.
 

[in] cbData

Dimensioni delle informazioni a cui punta il parametro lpData , in byte. Se i dati sono di tipo REG_SZ, REG_EXPAND_SZ o REG_MULTI_SZ, cbData deve includere le dimensioni del carattere o dei caratteri Null di terminazione.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in Winerror.h. È possibile usare la funzione FormatMessage con il flag FORMAT_MESSAGE_FROM_SYSTEM per ottenere una descrizione generica dell'errore.

Commenti

Le dimensioni dei valori sono limitate dalla memoria disponibile. Tuttavia, l'archiviazione di valori di grandi dimensioni nel Registro di sistema può influire sulle prestazioni. I valori lunghi (più di 2.048 byte) devono essere archiviati come file, con i percorsi dei file archiviati nel Registro di sistema.

Gli elementi dell'applicazione, ad esempio icone, bitmap e file eseguibili, devono essere archiviati come file e non devono essere inseriti nel Registro di sistema.

Se dwType è il tipo REG_SZ, REG_MULTI_SZ o REG_EXPAND_SZ e viene usata la versione ANSI di questa funzione (chiamando in modo esplicito RegSetValueExA o non definendo UNICODE prima di includere il file Windows.h), i dati a cui punta il parametro lpData devono essere una stringa di caratteri ANSI. La stringa viene convertita in Unicode prima che venga archiviata nel Registro di sistema.

Si noti che le operazioni che accedono a determinate chiavi del Registro di sistema vengono reindirizzate. Per altre informazioni, vedere Virtualizzazione del Registro di sistema e dati delle applicazioni a 32 bit e a 64 bit nel Registro di sistema.

È consigliabile usare la funzione RegSetKeyValue , che offre un modo più pratico per impostare il valore di una chiave del Registro di sistema.

Nota

L'intestazione winreg.h definisce RegSetValueEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winreg.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

RegSetKeyValue

RegCreateKeyEx

RegFlushKey

Regopenkeyex

Regqueryvalueex

Funzioni del Registro di sistema

Panoramica del Registro di sistema