Condividi tramite


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 delle chiavi del Registro di sistema e diritti di accesso.

Questo handle viene restituito dal RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExo funzione 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 null-terminate. Con il tipo di dati REG_MULTI_SZ, la stringa deve essere terminata con due caratteri null.

Nota lpData che indica 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 devono includere le dimensioni del carattere o dei caratteri null di terminazione.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è 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.

Osservazioni

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 utilizzata la versione ANSI di questa funzione (chiamando esplicitamente 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 Registry Virtualization e dati dell'applicazione 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winreg.h (include Windows.h)
libreria Advapi32.lib
dll Advapi32.dll

Vedere anche

RegSetKeyValue

RegCreateKeyEx

RegFlushKey

RegOpenKeyEx

RegQueryValueEx

funzioni del Registro di sistema

Panoramica del Registro di sistema