Как написать DWORD в реестр

Переводы статьи Переводы статьи
Код статьи: 258262 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

Иногда возникает необходимость записи информации в реестр. В этой статье показано, как записать значения REG_DWORD для ключа, созданного в реестре для этой статьи. Если вы пишете значение еще не существует, необходимо добавить его.

Дополнительная информация

ВАЖНЫЕ: Эта статья содержит сведения об изменении реестра. Перед изменением реестра убедитесь, что для резервного копирования и убедитесь, что вы знаете, как восстановить реестр в случае возникновения проблем. Для получения сведений о том, как резервное копирование, восстановление и редактирования реестра щелкните следующий номер статьи базы знаний Майкрософт:
256986 Описание реестра Microsoft Windows

ПРЕДУПРЕЖДЕНИЕ: Если неправильное использование редактора реестра может привести к серьезным неполадкам, требующим переустановки операционной системы. Корпорация Майкрософт не гарантирует, что можно решения проблем, вызванных неправильным использованием редактора реестра. С помощью редактора реестра на свой страх и риск.

Сведения о редакторе реестра в данной статье, для Microsoft Windows NT и Windows 2000. Если вы используете Microsoft Windows 9 X, необходимо с помощью программы Regedit.exe вместо Regedt32.exe.

ПРИМЕЧАНИЕ: В этой статье используется раздел реестра, который создается только для целей тестирования и должен быть удален после завершения тестирования.
  1. Запустите редактор реестра (Regedt32.exe).
  2. Найдите следующий раздел реестра:
       HKEY_LOCAL_MACHINE\Software
    					
  3. На Редактирование меню, нажмите кнопку Добавить ключ, а затем добавьте следующий параметр реестра ключ:
       VfpREGTest
    					
  4. На Редактирование меню, нажмите кнопку Добавить значение, а затем добавьте следующий параметр реестра:
       Value Name: MyDWORD
       Data Type:  REG_DWORD
       Value:      0
    					
  5. Закройте редактор реестра.
  6. В Visual FoxPro создать программу и введите следующий код:
    #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. Выполните код, созданный на шаге 1. Появится окно сообщения о успехе или неудаче функции. Чтобы убедиться, что значение записи реестра можно использовать regedt32.exe.
  8. Можно заменить nKey, cSubKey, cValue и nValueToWrite сведений, записываемых в системный реестр.
(c) 2000 Corporation Корпорация Майкрософт, все права защищены. Взносы, Марк Barnard, корпорация Майкрософт.

Ссылки


За дополнительной информацией, получение значений из реестра щелкните следующий номер статьи базы знаний Майкрософт:
244675 Как сервер сценариев ToUse Windows для чтения, записи, удалите реестра

Свойства

Код статьи: 258262 - Последний отзыв: 5 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual FoxPro 6.0 Professional Edition
Ключевые слова: 
kbapi kbcodesnippet kbhowto kbregistry kbmt KB258262 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:258262

Отправить отзыв

 

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