Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прочитать определённую ветвь системного реестра... [D7, WinXP]


Starcom ©   (2005-11-01 16:39:00) 

Привет Мастера!

Как мне в моём приложении сделать следующее...

Прочитать определённую ветвь системного реестра
HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage
SetValue "1250"="c_1250.nls" и если вней есть изменения
SetValue "1250"="c_1251.nls" то в CheckBox выставить
Checked = true;

С Уважением Starcom! ;)


Leonid Troyanovsky   (2005-11-02 09:21:00) [1]


> Starcom ©   (01.11.05 19:18) [4]

> что вообще не так, можно с примером!


uses
 Registry;


procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
S: string;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('\SYSTEM\CurrentControlSet\Control\Nls\CodePage',False);
s :=Reg.ReadString('1250');
Reg.Free;
CheckBox1.Checked := Trim(s) = 'c_1251.nls';
end;


--
Regards, LVT.


Grol   (2005-11-01 19:47:00) [2]

А можно поинтересоваться? А как можно будет считать или записать информаци в реестр, если я нахожусь под ограниченной учетной записью в Windows XP?


Starcom   (2005-11-01 19:18:00) [3]

Leonid Troyanovsky ©   (01.11.05 18:06) [3]

С таким кодом что c_1250.nls или c_1251.nls - Checked = всегда - true
что вообще не так, можно с примером!

function TForm1.GetRegistryValue: string;
var
 Registry: TRegistry;
 S: string;
begin
 Registry:=TRegistry.Create;
 Registry.RootKey:=HKEY_LOCAL_MACHINE;
 Registry.OpenKey('\SYSTEM\CurrentControlSet\Control\Nls\CodePage',False);
 Result :=Registry.ReadString('"1250"="c_1250.nls"');
 Form1.CheckBox1.Checked := Result = Registry.ReadString('"1250"="c_1251.nls"');
end;


Leonid Troyanovsky   (2005-11-01 18:06:00) [4]


> Leonid Troyanovsky ©   (01.11.05 16:42) [1]

> Да всё понятно .... но как мне зделать Checked=True;
..
>  Result :=Registry.ReadString('1250',);


Checked := Result = 'c_1251.nls' ;  ?

--
Regards, LVT.


Starcom   (2005-11-01 18:01:00) [5]

Leonid Troyanovsky ©   (01.11.05 16:42) [1]

Да всё понятно .... но как мне зделать Checked=True;

>>>
var
 Registry: TRegistry;
 S: string;
begin
 Registry:=TRegistry.Create;
 try
 Registry.RootKey:=HKEY_LOCAL_MACHINE;
 if Registry.OpenKey('\SYSTEM\CurrentControlSet\Control\Nls\CodePage',False) then
  Result:=Registry.ReadString('1250',);
 end;
 finally
 Registry.Free;
 end;
<<<


Leonid Troyanovsky   (2005-11-01 16:42:00) [6]


> Starcom ©   (01.11.05 16:39)  

> Как мне в моём приложении сделать следующее...


VCL Reference
Create, OpenKey, RootKey, WriteString, CloseKey example

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо