Como escrever uma DWORD no registo

Traduções de Artigos Traduções de Artigos
Artigo: 258262 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sumário

Por vezes é necessário escrever informações no registo. Este artigo mostra como escrever valores REG_DWORD a uma chave criada no registo para este artigo. Se o valor que está a escrever já não existir, terá de adicioná-lo.

Mais Informação

importante : Este artigo contém informações sobre como modificar o registo. Antes de modificar o registo, certifique-se de que efectua uma cópia de segurança e de que compreende como o restaurar o registo se ocorrer um problema. Para obter informações sobre como efectuar uma cópia de segurança, restaurar e editar o registo, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
256986Descrição do registo do Microsoft Windows

aviso : a utilização incorrecta do Editor de registo poderá provocar problemas graves que poderão forçar a reinstalação do sistema operativo. Microsoft não garante que os problemas resultantes da utilização incorrecta do Editor de registo possam ser resolvidos. As suas próprias risco da utilização do Editor de registo.

As informações sobre o editor de registo neste artigo são para o Microsoft Windows NT e Microsoft Windows 2000. Se estiver a executar o Microsoft Windows 9 X, terá de utilizar o Regedit.exe em vez do Regedt32.exe.

NOTA: Este artigo utiliza uma chave de registo que é criada apenas para fins de teste e deve ser eliminada quando tiver terminado testes.
  1. Inicie o Editor de registo (Regedt32.exe).
  2. Localize a seguinte chave no registo:
       HKEY_LOCAL_MACHINE\Software
    					
  3. No menu Editar , clique em Adicionar chave e, em seguida, adicione o seguinte chave do registo:
       VfpREGTest
    					
  4. No menu Editar , clique em Adicionar valor e, em seguida, adicione o seguinte valor de registo:
       Value Name: MyDWORD
       Data Type:  REG_DWORD
       Value:      0
    					
  5. Saia do Editor de registo.
  6. A partir do Visual FoxPro, crie um programa e introduza o seguinte 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. Execute o código criado no passo 1. É apresentada uma caixa de mensagem anunciar o êxito ou falha da função. Pode utilizar o regedt32.exe para verificar que o valor foi escrito no registo.
  8. Pode substituir nKey, cSubKey, cValue e nValueToWrite com as informações sejam escritos no registo.
(c) Microsoft Corporation 2000, todos os direitos reservados. Contribuições de marca Barnard, Microsoft Corporation.

Referências


Para obter os valores do registo obter informações adicionais, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
244675Como ToUse Windows Script Host para ler, escrever, eliminar registo

Propriedades

Artigo: 258262 - Última revisão: 15 de julho de 2004 - Revisão: 2.2
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbmt kbapi kbcodesnippet kbhowto kbregistry KB258262 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 258262

Submeter comentários

 

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