![]() |
|
#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 параметра: секция, поле, дефолтное значение. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 09.03.2013 в 20:43. |
#3
|
||||
|
||||
![]() Спутал 2 типа TRegistry и TRegIniFile. Исправь на
Код:
var Reg : TRegistry; begin Reg := TRegistry.Create; ... Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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 не прописал.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
fofka (10.03.2013)
|
#7
|
||||
|
||||
![]() Все работает как нужно. Будем делать далее. Благодарю за подсказку.
Код:
procedure TForm1.Button1Click(Sender: TObject); var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.RootKey:=HKEY_LOCAL_MACHINE; 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; |
#8
|
||||
|
||||
![]() Лучше подправить немного.
Код:
procedure TForm1.Button1Click(Sender: TObject); var Reg : TRegistry; begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; 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; Reg.Free; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |