Comment faire pour écrire un DWORD dans le Registre

Traductions disponibles Traductions disponibles
Numéro d'article: 258262 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Il est parfois nécessaire d'écrire des informations dans le Registre. Cet article explique comment écrire des valeurs REG_DWORD dans une clé créée dans le Registre pour cet article. Si la valeur que vous écrivez n'existe pas déjà, vous devez l'ajouter.

Plus d'informations

IMPORTANT : cet article contient des informations sur la modification du Registre. Avant de modifier le Registre, veillez à sauvegarder et assurez-vous que vous savez comment le restaurer en cas de problème. Pour savoir comment sauvegarder, restaurer et modifier le Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
256986Description du Registre Microsoft Windows

Avertissement : Si vous utilisez l'Éditeur du Registre incorrectement, vous exposez à de graves problèmes pouvant vous obliger à réinstaller votre système d'exploitation. Microsoft ne peut pas garantir que vous puissiez résoudre les problèmes résultant d'une mauvaise utilisation de l'Éditeur du Registre. Utilisez l'Éditeur du Registre à vos risques et périls.

Les informations sur l'Éditeur du Registre dans cet article sont pour Microsoft Windows NT et Microsoft Windows 2000. Si vous exécutez Microsoft Windows 9 X, vous devez utiliser Regedit.exe au lieu de Regedt32.exe.

Remarque :Cet article utilise une clé de Registre qui est créée uniquement à des fins de test et doit être supprimée lorsque vous avez terminé d'essai.
  1. Démarrez l'Éditeur du Registre (Regedt32.exe).
  2. Recherchez la clé suivante dans le Registre :
       HKEY_LOCAL_MACHINE\Software
    					
  3. Dans le menu Edition, cliquez sur Ajouter une clé et ajoutez la clé de Registre suivante :
       VfpREGTest
    					
  4. Dans le menu Edition, cliquez sur Ajouter une valeur et ajoutez la valeur de Registre suivante :
       Value Name: MyDWORD
       Data Type:  REG_DWORD
       Value:      0
    					
  5. Quittez l'Éditeur du Registre.
  6. À partir de Visual FoxPro, créez un programme et entrez le code suivant :
    #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. Exécutez le code créé à l'étape 1. Un message s'affiche annonçant la réussite ou l'échec de la fonction. Vous pouvez utiliser regedt32.exe pour vérifier que la valeur a été écrite dans le Registre.
  8. Vous pouvez remplacer nKey, cSubKey, cValue et nValueToWrite avec vos informations à écrire dans le Registre.
(c) Microsoft Corporation 2000, tous droits réservés. Contribution de Mark Barnard, Microsoft Corporation.

Références


Pour plus d'informations obtention de valeurs à partir du Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
244675Comment utiliser Windows Script Host à Read, Write, supprimer du Registre

Propriétés

Numéro d'article: 258262 - Dernière mise à jour: jeudi 15 juillet 2004 - Version: 2.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual FoxPro 3.0 Édition Standard
  • Microsoft Visual FoxPro 3.0b Édition standard
  • Microsoft Visual FoxPro 5.0 Édition standard
  • Microsoft Visual FoxPro 5.0a
  • Microsoft Visual FoxPro 6.0 Édition Professionnelle
Mots-clés : 
kbmt kbapi kbcodesnippet kbhowto kbregistry KB258262 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 258262
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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