PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic WEB разработка *NIX CouchDB Hack Python
Главная Статьи Delphi Работа с реестром на низком уровне
Главная
 Главная  Контакты
 
Программинг
Статьи Книги ЧаВО
 
xBOOKi
Fresh Books Операционки Сети
 
Поиск
-------
 
Counters
Яндекс цитирования
Rambler's Top100
-------
 
CryptDisk.4h
Программа которая позволяет создать виртуальный шифрованный логический диск.

cryptdisk.4hack.com

-------
 
 
Работа с реестром на низком уровне

Мне уже несколько раз приходили вопросы от программистов Windows NT типа: "Почему, когда я создаю ключи в реестре с помощью TRegIniFile все ключи строковые, хотя я хочу создать целое число". Некоторые думают, что это глюк Delphi, но это не глюк, а специфика TRegIniFile. Если ты хочешь, чтобы твои проги правильно работали с реестром в любой ОС, то эта статья для тебя.

Объект TRegIniFile работает с реестром на высоком уровне так, как будто он работает с ini файлом. Если ты не застал Win3.11, то напомню, ini файлы - это файлы конфигурации, которые уже устарели и используются только для совмеситмости со старым софтом. Сейчас для этих целей есть реестр. TRegIniFile - объект, который позволяет работать с реестром как с ini файлом. А так, как файл может содержать только строки, то и объект работает со строками. Так что реально, TRegIniFile все данные сохраняет и читает из реестра в виде строк. Только после чтения строки происходит преобразование в формат указанный тобой.

Реестр, в отличии от ini файлов - это база данных. Поэтому она позволяет реально хранить не только строки, но и числа, и данные, и логические операторы. Если ты хочешь, чтобы данные сохранялись и читались в виде типов отличных от строк, то ты должен работать через TRegistry. Он так же объявлен в модуле registry, поэтому ты должен подключать этот модуль в раздел uses.

Работа с TRegistry проктически такая же, как и с TRegIniFile:

var
 Reg:TRegistry;
begin
 Reg:=TRegIniFile.Create; //Инициализация
 Reg.RootKey:=HKEY_LOCAL_MACHINE;//Выбираю корень реестра
                                 //По умолчанию это HKEY_CURRENT_USER

 Reg.OpenKey('SYSTEM', true);           //Открываю раздел SYSTEM
 Reg.OpenKey('CurrentControlSet', true);//Открываю раздел CurrentControlSet
 Reg.OpenKey('Control', true);
 Reg.OpenKey('Session Manager', true);
 Reg.OpenKey('Memory Management', true);

 //Записываю параметр ClearPageFileAtShutdown
 Reg.WriteInteger('ClearPageFileAtShutdown', 112);

 //Читаю параметр Hidden
 RegIni.ReadInteger('Hidden')

 Reg.CloseKey;//Закрываю ключ
 Reg.Free;    //Освобождаю объект
end;

В этом примере чтение и запись будет происходить с числами, а не со строками с последующим преобразованием в число. Всё очень просто, даже больше, чем просто.



Свежее
Резервное копирование rsync-ом
DNS Amplification (DNS усиление)
Алгоритм Шинглов — поиск нечетких дубликатов текста
Metasploit Framework. Обзор
Использование CouchDB
-------



 
Copyright © 2003-2009   Frikazoid.
Rambler's Top100