Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на WinApi, C++Builder, Visual C++


Информационный Канал Subscribe.Ru


Выпуск № 40-2003 BCBDEV.RU

Здравствуйте уважаемые подписчики!

Перед вами очередной выпуск рассылки "Программирование на WinApi"
Переводы многих функций Win32API, которые часто используются в данной рассылке, вы можете получать, подписавшись на дружественную рассылку "WinAPI на русском".
Справочник по функциям Win32API вы можете посмотреть на сайте BcbDev.ru в разделе MSDN по-русски.

Как добавить новую запись в системный реестр? (Работа с реестром 2)
Этот код добавляет новую строковую запись в системный реестр в раздел HKEY_CURRENT_USER.
#include <windows.h>
static REGSAM PrimarySecAccMask=KEY_QUERY_VALUE         |
                                KEY_SET_VALUE           |
                                KEY_CREATE_SUB_KEY      |
                                KEY_ENUMERATE_SUB_KEYS  |
                                KEY_NOTIFY ;


LONG WINAPI MyRegSetString (const char * szSection, 
                            const char * szEntry,
                            const char * szValue)
{ 
   char szTreeBranch [120] ;
   HKEY hMasterKey      = 0 ;
   DWORD dwDisposition  = 0 ;
   HKEY hTopKey         = 0 ;
   LONG lReturn         = 0 ;

   // Все параметры должны существовать.

   if (szSection == NULL ||
       szEntry   == NULL ||
       szValue   == NULL)
   {
      return ERROR_INVALID_PARAMETER ;
   }

   // Выбираем нужный путь

   strcpy (szTreeBranch, "Software\\MyCompany\\MyProgram\\");
   strcat (szTreeBranch, szSection) ;
   hTopKey = HKEY_CURRENT_USER ;

   lReturn = RegCreateKeyEx (hTopKey,
                             szTreeBranch,
                             0,
                             NULL, 
                             REG_OPTION_NON_VOLATILE,
                             PrimarySecAccMask,
                             NULL,
                             &hMasterKey,
                             &dwDisposition);

   if (lReturn == ERROR_SUCCESS)
   {
      // раздел существует: записываем значение.

      lReturn = RegSetValueEx (hMasterKey,
                               szEntry,
                               0,
                               REG_SZ,
                               (CONST BYTE *) szValue,
                               strlen (szValue)+1);
   }
   else
   {
      //< что нибудь делаем >
   }

   if (hMasterKey)
      RegCloseKey (hMasterKey);

   return lReturn ;
}

int WINAPI WinMain(HINSTANCE hInst,HINSTANCE, LPTSTR , int)
{
    MyRegSetString("SECTION", "ENTRY", "VALUE");
return 0;
} 

Удачи Вам в Ваших делах Куковинец Андрей aka Juggernaut

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное