![]() |
|
|
|
|
#1
|
||||
|
||||
|
Доброго всем вечера.
Есть нужда упростить работу. Проверить откуда комп синхронизирует время, ну и остальные параметры тоже... Делаю так, и получаю ошибку. Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Reg:TRegIniFile;
begin
Reg := TRegIniFile.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('SYSTEM', true);
Reg.OpenKey('CurrentControlSet', true);
Reg.OpenKey('servises', true);
Reg.OpenKey('W32Time', true);
Reg.OpenKey('Parametrs', true);
LabeledEdit1.Text:= Reg.ReadString('NTPServer');
end;Цитата:
|
|
#2
|
||||
|
||||
|
Ctrl + Space тыкни, глянь.
Еще можно F1 тыкнуть, глянуть раздел по TRegIniFile. Вроде ReadString принимает 3 параметра: секция, поле, дефолтное значение. Последний раз редактировалось M.A.D.M.A.N., 09.03.2013 в 20:43. |
|
#3
|
||||
|
||||
|
Спутал 2 типа TRegistry и TRegIniFile. Исправь на
Код:
var Reg : TRegistry; begin Reg := TRegistry.Create; ... |
|
#4
|
|||
|
|||
|
Цитата:
Ага, и открывать надо ключ сразу по пути: Код:
If Reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\servises\W32Time\Parametrs') Then // Ты ведь только читаешь...
Begin
If Reg.ValueExists('NTPServer')
Then LabeledEdit1.Text:= Reg.ReadString('NTPServer')
Else LabeledEdit1.Text:= 'N/A';
Reg.CloseKey;
End; |
|
#5
|
||||
|
||||
|
Исправил как подсказали angvelem и lmikle, ошибку не выдает при копиляции. Но судя по тому что в LabeledEdit1 у меня нет изменений при нажатии на кнопку, не может прочитать ключ реестра.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
If Reg.OpenKeyReadOnly('SYSTEM\CurrentControlSet\services\W32Time\Parameters') Then
Begin
If Reg.ValueExists('NTPServer')
Then LabeledEdit1.Text:= Reg.ReadString('NTPServer')
Else LabeledEdit1.Text:= 'N/A';
Reg.CloseKey;
End;
end; |
|
#6
|
||||
|
||||
|
Reg.RootKey:=HKEY_LOCAL_MACHINE не прописал.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
fofka (10.03.2013)
| ||