Показать сообщение отдельно

  #3476  
Старый 01.05.2009, 17:38
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами: 9980798

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

Цитата:
Сообщение от Stil Free  
Парни нужно добавить ключ в реестр , а потом при запуске программы проверять его как это сделать?
Создать подраздел в реестре:

RegCreateKey (Key:HKey; SubKey: PChar; var Result: HKey): Longint;
_____ Key - указывает на "корневой" раздел реестра, в Delphi1 доступен только один - HKEY_CLASSES_ROOT, а в Delphi3 - все.
_____ SubKey - имя раздела - строится по принципу пути к файлу в DOS (пример subkey1\subkey2\ ...). Если такой раздел уже существует, то он открывается.
_____ В любом случае при успешном вызове Result содержит Handle на раздел.
_____ Об успешности вызова судят по возвращаемому значению, если ERROR_SUCCESS, то успешно, если иное - ошибка.

================================================== ==

Открыть подраздел:

RegOpenKey(Key: HKey; SubKey: PChar; var Result: HKey): Longint;

_____ Раздел Key
_____ Подраздел SubKey
_____ Возвращает Handle на подраздел в переменной Result. Если раздела с таким именем нет, то он не создается.
_____ Возврат - код ошибки или ERROR_SUCCESS, если успешно.

================================================== ==

Закрывает раздел:

RegCloseKey(Key: HKey): Longint;

_____ Закрывает раздел, на который ссылается Key.
_____ Возврат - код ошибки или ERROR_SUCCESS, если успешно.

================================================== ==

Удалить подраздел:

RegDeleteKey(Key: HKey; SubKey: PChar): Longint;

_____ Удалить подраздел Key\SubKey.
_____ Возврат - код ошибки или ERROR_SUCCESS, если нет ошибок.

================================================== ==

Получить имена всех подразделов раздела Key:

RegEnumKey(Key:HKey; index: Longint; Buffer: PChar; cb: Longint): Longint;

_____ Key - Handle на открытый или созданный раздел
_____ Buffer - указатель на буфер
_____ cb - размер буфера
_____ index - индекс, должен быть равен 0 при первом вызове RegEnumKey. Типичное использование - в цикле While, где index увеличивается до тех пор, пока очередной вызов RegEnumKey не завершится ошибкой

================================================== ==

Возвращает текстовую строку, связанную с ключом Key\SubKey:

RegQueryValue(Key: HKey; SubKey: PChar; Value: PChar; var cb: Longint): Longint;

_____ Ключ\подключ Key\SubKey.
_____ Value - буфер для строки
_____ cb - размер, на входе - размер буфера, на выходе - длина возвращаемой строки.
_____ Возврат - код ошибки.

================================================== ==

Задать новое значение ключу Key\SubKey:

RegSetValue(Key: HKey; SubKey: PChar; ValType: Longint; Value: PChar; cb: Longint): Longint;

_____ Ключ\подключ Key\SubKey.
_____ ValType - тип задаваемой переменной,
_____ Value - буфер для переменной
_____ cb - размер буфера. В Windows 3.1 допустимо только Value=REG_SZ.
_____ Возврат - код ошибки или ERROR_SUCCESS, если нет ошибок.

================================================== ==

Удаляет значение lpValueName находящееся в ключе hKey:

RegDeleteValue(HKEY hKey, LPCTSTR lpValueName);

_____ hKey - ключ. hKey должен был быть открыт с доступом KEY_SET_VALUE процедурой RegOpenKey.
_____ lpValueName - значение, находящееся в ключе hKey.
_____ Возвращает ERROR_SUCCESS если успешно.

================================================== ==

Выдает список значений у ключа hKey:

LONG RegEnumValue( HKEY hKey, DWORD dwIndex, LPTSTR lpValueName, LPDWORD lpcbValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);

_____ hKey - ключ.
_____ dwIndex - этот параметр должен быть 0 при первом вызове, а далее по анологии с RegEnumKey (т.е. можно использовать в цикле),
_____ lpValueName - буфер для названия значения
_____ lpcbValueName - размер lpValueName
_____ lpReserved должно быть всегда 0
_____ lpType - буфер для названия типа (int)
_____ lpData - буфер для данных
_____ lpcbData-размер для lpData

================================================== ==


Примечание:
При каждой новом вызове функции после предыдущего нужно заново переназначить lpcbValueName.


lpcbValueName = sizeof(lpValueName)
 
Ответить с цитированием