Cómo escribir un valor DWORD en el registro

Seleccione idioma Seleccione idioma
Id. de artículo: 258262 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

A veces es necesario escribir información en el registro. En este artículo muestra cómo escribir valores REG_DWORD en una clave creada en el registro para este artículo. Si el valor que está escribiendo no existe, deberá agregarlo.

Más información

importante : este artículo contiene información acerca de cómo modificar el registro. Antes de modificar el Registro, asegúrese de hacer una copia de seguridad del mismo y de que sabe cómo restaurarlo si ocurre algún problema. Para obtener información sobre cómo realizar una copia de seguridad, restaurar y modificar el Registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
256986Definición del Registro de Microsoft Windows

Advertencia : si utiliza incorrectamente el Editor del registro, pueden surgir problemas graves que conlleven la reinstalación del sistema operativo. Microsoft no garantiza que pueda solucionar los problemas resultantes del uso incorrecto del Editor del Registro. Utilice el Editor del Registro bajo su responsabilidad.

La información sobre el editor del registro en este artículo es para Microsoft Windows NT y Microsoft Windows 2000. Si está ejecutando Microsoft Windows 9 X, deberá utilizar Regedit.exe en lugar de Regedt32.exe.

Nota: Este artículo utiliza una clave de registro que se crea sólo para pruebas y debe eliminarse cuando haya terminado las pruebas.
  1. Inicie el Editor del Registro (Regedt32.exe).
  2. Busque la siguiente clave del registro:
       HKEY_LOCAL_MACHINE\Software
    					
  3. En el menú Edición , haga clic en Agregar clave y, a continuación, agregue el clave Registro siguiente:
       VfpREGTest
    					
  4. En el menú Edición , haga clic en Agregar valor y, a continuación, agregue el siguiente valor del registro:
       Value Name: MyDWORD
       Data Type:  REG_DWORD
       Value:      0
    					
  5. Salga del Editor del Registro.
  6. Desde Visual FoxPro, crear un programa y escriba el siguiente código:
    #DEFINE HKEY_CLASSES_ROOT           -2147483648
    #DEFINE HKEY_CURRENT_USER           -2147483647
    #DEFINE HKEY_LOCAL_MACHINE          -2147483646
    #DEFINE HKEY_USERS                  -2147483645
    
    LOCAL nKey, cSubKey, cValue, nValueToWrite, lSuccess
    nKey = HKEY_LOCAL_MACHINE
    nValueToWrite = 1
    cSubKey = "Software\VfpREGTest"
    cValue = "MyDWORD"
    
    lSuccess = WriteRegDWORD(nKey, cSubKey, cValue, nValueToWrite)
    
    IF (lSuccess) THEN
       =MESSAGEBOX("Function Successful.")
    ELSE
       =MESSAGEBOX("Function Not Successful.")
    ENDIF
    
    FUNCTION WriteRegDWORD
       * This function writes a REG_DWORD to the registry. It will return .T.
       * if successful and .F. if it isn't successful.
       PARAMETERS  nKey, cSubKey, cValue,  nValueToWrite
       * nKey The root key to open. It can be any of the constants defined below.
       *#DEFINE HKEY_CLASSES_ROOT           -2147483648
       *#DEFINE HKEY_CURRENT_USER           -2147483647
       *#DEFINE HKEY_LOCAL_MACHINE          -2147483646
       *#DEFINE HKEY_USERS                  -2147483645
       *cSubKey The SubKey to open.
       *cValue The value that is going to be written.
       *nValueToWrite The value to write to the registry
    
       * Constants that are needed for Registry functions
       #DEFINE REG_DWORD   4
    
       * WIN 32 API functions that are used
       DECLARE Integer RegOpenKey IN Win32API ;
          Integer nHKey, String @cSubKey, Integer @nResult
       DECLARE Integer RegSetValueEx IN Win32API ;
          Integer hKey, String lpszValueName, Integer dwReserved,;
          Integer fdwType, String lpbData, Integer cbData
       DECLARE Integer RegCloseKey IN Win32API Integer nHKey
    
       * Local variables used
       LOCAL nErrCode          && Error Code returned from Registry functions
       LOCAL nKeyHandle        && Handle to Key that is opened in the Registry
       LOCAL lpdwValueType     && Type of Value that we are looking for.
       LOCAL lpbValue          && The data stored in the value
       LOCAL lpcbValueSize     && Size of the variable
       LOCAL lpdwReserved      && Reserved Must be 0
    
       * Initialize the variables
       nKeyHandle = 0
       lpdwReserved = 0           
       lpdwValueType = REG_DWORD
       lpcbValueSize = 4     && DWORD is 4 bytes
    
       lpbValue = LongToStr(nValueToWrite)
    
       nErrCode = RegOpenKey(nKey, cSubKey, @nKeyHandle)
       * If the error code isn't 0, then the key doesn't exist or can't be opened.
       IF (nErrCode # 0) THEN
          RETURN .F.
       ENDIF
    
       nErrCode=RegSetValueEx(nKeyHandle, cValue, lpdwReserved, lpdwValueType, lpbValue, lpcbValueSize)
       =RegCloseKey(nKeyHandle)
       IF (nErrCode # 0) THEN
          RETURN .F.
       ENDIF
    RETURN .T.
    
    FUNCTION LongToStr
    * This function converts a long to a string
       PARAMETERS nLongVal
       LOCAL nLoopVar, strReturn
    
       strReturn = ""
       FOR nLoopVar = 24 TO 0 STEP -8
          strReturn = CHR(INT(nLongVal/(2^nLoopVar))) + strReturn
          nLongVal = MOD(nLongVal, (2^nLoopVar))
       NEXT
    RETURN strReturn
    * End of Code
    					
  7. Ejecute el código creado en el paso 1. Aparece un cuadro de mensaje anunciando el éxito o fracaso de la función. Puede utilizar regedt32.exe para comprobar que el valor se escribirá en el registro.
  8. Puede reemplazar nKey, cSubKey, cValue y nValueToWrite con su información se escribe en el registro.
(c) Microsoft Corporation 2000, reservados todos los derechos. Contribuciones por Mark Barnard, Microsoft Corporation.

Referencias


Para obtener información adicional obtención de valores del registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
244675Cómo ToUse Windows Script Host para leer, escribir, eliminar registro

Propiedades

Id. de artículo: 258262 - Última revisión: jueves, 15 de julio de 2004 - Versión: 2.2
La información de este artículo se refiere a:
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 3.0b Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Professional Edition
Palabras clave: 
kbmt kbapi kbcodesnippet kbhowto kbregistry KB258262 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 258262

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com