Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Функции для работы с реестром

Разбирался, давеча, с функциями позволяющими работать с реестром Windows. Нашел ряд функций-членов класса CWinApp: SetRegistryKey, GetProfileInt, GetProfileString, WriteProfileInt, WriteProfileString.

CWinApp::SetRegistryKey

 
 CWinApp::SetRegistryKey
 
 void SetRegistryKey( LPCTSTR lpszRegistryKey );
 
 void SetRegistryKey( UINT nIDRegistryKey );
 
 

Параметры

  • lpszRegistryKey - Указатель на строку содержащую имя ключа реестра.
  • nIDRegistryKey - ID/индекс ключа в реестре.

Заставляет приложение сохранять установки в реестр вместо INI файлов. Эта функция устанавливает m_pszRegistryKey, которая затем используется в следующих функциях-членах CWinApp: GetProfileInt, GetProfileString, WriteProfileInt, and WriteProfileString. Если эта функция была вызвана, список недавно используемых файлов (list of most recently-used - MRU) также сохраняется в реестре. Ключ реестра обычно является именем компании. Ключ реестра имеет следующий вид: HKEY_CURRENT_USERSoftware.

CWinApp::GetProfileInt

 
 CWinApp::GetProfileInt
 
 UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault );
 
 

Если функция успешно отработала - целое значение строки определенной записи. Возвращаемое значение - значение параметра nDefault если функция не нашла записи. Возвращаемое значение - 0 если значение которое соответствует заданной записи не целое.

Эта функция поддерживает шестнадцатеричную нотацию для значений в .INI файле. Когда вы получаете знаковое целое, вы должны перевести значение в int.

Параметры

  • lpszSection - Указатель на строку завершенную нулем которая определяет секцию, содержащую запись в реестре.
  • lpszEntry - Указатель на строку завершенную нулем, которая содержит запись, значение которой будет возвращено.
  • nDefault - Определяет значение по умолчанию для возвращения, если система не сможет найти запись. Это значение может быть беззнаковым целым (unsigned) в диапазоне от 0 до 65,535 или знаковым (signed) в диапазоне от -32,768 до 32,767.

Вызывайте эту функцию для получения целого значения записи из определенной секции из реестра или .INI файла.

Записи сохраняются следующим образом:

В Windows NT, значение сохраняется в ключ реестра.

В Windows 3.x, значение сохраняется в WIN.INI файл.

В Windows 95, значение сохраняется в скрытую версию WIN.INI файла.

Эта функция не чувствительна к регистру букв, таким образом, строки в параметрах lpszSection и lpszEntry могут использовать буквы разного регистра.

CWinApp::GetProfileString

 
 CWinApp::GetProfileString
 
 CString GetProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL );
 
 

Возвращаемое значение - строка из.INI файла приложения или lpszDefault если строка не найдена. Максимальная длинна строки, которую поддерживает система, определена в _MAX_PATH. Если lpszDefault равно NULL, возвращаемое значение - пустая строка.

Параметры

  • lpszSection - Указатель на строку завершенную нулем которая определяет секцию содержащую запись в реестре.
  • lpszEntry - Указатель на строку завершенную нулем, которая содержит запись, строка из которой будет возвращена. Это значение не должно быть равно NULL.
  • lpszDefault - Указатель на значение строки по умолчанию для заданной записи если запись не найдена в инициализирующем (INI) файле.

Вызывайте эту функцию для получения строки связанной с записью в заданной секции реестра приложения или .INI файла.

Записи сохраняются следующим образом:

В Windows NT, значение сохраняется в ключ реестра.

В Windows 3.x, значение сохраняется в WIN.INI файл.

В Windows 95, значение сохраняется в скрытую версию WIN.INI файла.

Пример

 
 CString strSection = "Моя секция";
 
 CString strStringItem = "Мой строковый элемент";
 
 CString strIntItem = "Мой целый элемент";
 
 
 
 
 
 CWinApp* pApp = AfxGetApp();
 
 pApp->WriteProfileString(strSection, strStringItem, "test");
 
 
 
 CString strValue;
 
 strValue = pApp->GetProfileString(strSection, strStringItem);
 
 ASSERT(strValue == "test");
 
 
 
 pApp->WriteProfileInt(strSection, strIntItem, 1234);
 
 int nValue;
 
 nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
 
 ASSERT(nValue == 1234);
 
 

CWinApp::WriteProfileInt

 
 CWinApp::WriteProfileInt
 
 BOOL WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue );
 
 

Возвращаемое значение: Не 0 в случае удачного вызова функции, иначе 0.

Параметры

  • lpszSection - Указатель на строку завершенную нулем, которая определяет секцию, содержащую запись. Если секция не найдена, она создается. Имя секции не зависит от регистра; строка может сочетать как заглавные, так и прописные буквы.
  • lpszEntry - Указатель на строку завершенную нулем, которая содержит запись, в которую будет записано значение. Если запись не найдена в заданной секции, она создается.
  • nValue - Содержит значение для записи.

Вызывайте эту функцию для записи заданного значения в заданную секцию реестра или .INI файл.

Записи сохраняются следующим образом:

В Windows NT, значение сохраняется в ключ реестра.

В Windows 3.x, значение сохраняется в WIN.INI файл.

В Windows 95, значение сохраняется в скрытую версию WIN.INI файла.

Пример

 
 CString strSection = "Моя секция";
 
 CString strStringItem = "Мой строковый элемент";
 
 CString strIntItem = "Мой целый элемент";
 
 
 
 CWinApp* pApp = AfxGetApp();
 
 pApp->WriteProfileString(strSection, strStringItem, "test");
 
 
 
 CString strValue;
 
 strValue = pApp->GetProfileString(strSection, strStringItem);
 
 ASSERT(strValue == "test");
 
 
 
 pApp->WriteProfileInt(strSection, strIntItem, 1234);
 
 int nValue;
 
 nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
 
 ASSERT(nValue == 1234);
 
 

CWinApp::WriteProfileString

 
 CWinApp::WriteProfileString
 
 BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );
 
 

Возвращаемое значение: Не 0 в случае удачного вызова функции, иначе 0.

Параметры

  • lpszSection - Указатель на строку завершенную нулем, которая определяет секцию, содержащую запись. Если секция не найдена, она создается. Имя секции не зависит от регистра; строка может сочетать как заглавные, так и прописные буквы.
  • lpszEntry - Указатель на строку завершенную нулем, которая содержит запись, в которую будет записано значение. Если запись не найдена в заданной секции, она создается.
  • lpszValue - Указатель на строку, предназначенную для записи. Если этот параметр NULL, запись определенная параметром lpszEntry удаляется.

Вызывайте эту функцию для записи заданной строки в заданную секцию реестра или .INI файл.

Записи сохраняются следующим образом:

В Windows NT, значение сохраняется в ключ реестра.

В Windows 3.x, значение сохраняется в WIN.INI файл.

В Windows 95, значение сохраняется в скрытую версию WIN.INI файла.

Пример

 
 CString strSection = "Моя секция";
 
 CString strStringItem = "Мой строковый элемент";
 
 CString strIntItem = "Мой целый элемент";
 
 
 
 CWinApp* pApp = AfxGetApp();
 
 pApp->WriteProfileString(strSection, strStringItem, "test");
 
 
 
 CString strValue;
 
 strValue = pApp->GetProfileString(strSection, strStringItem);
 
 ASSERT(strValue == "test");
 
 
 
 pApp->WriteProfileInt(strSection, strIntItem, 1234);
 
 int nValue;
 
 nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
 
 ASSERT(nValue == 1234);
 
 

Ну вот в общем и все. Если есть какие-нибудь замечание и пожелания - пишите - dmweb@newmail.ru



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS