![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Немогу заставить считать параметр реестра в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon программа не реагирует вообще.
если обращаться в HKEY_CURRENT_USER и указать какой-то параметр то программа ненаходит его хотя он есть. работаю в windows XP под админом ![]() Код:
var reg:TRegistry; begin Reg:=TRegistry.Create; With Reg do Try Begin RootKey:=HKEY_CURRENT_USER; OpenKey('HKEY_CURRENT_USER\Keyboard Layout\Preload',False); If ValueExists('1') then Begin Edit1.Text:=IntToStr(ReadInteger('1 ')); WriteInteger('1',StrToInt(Edit1.Tex t)); End Else Begin Edit1.Text:='параметр не существует'; WriteInteger('1',StrToInt(Edit1.Tex t)); End; CloseKey; End; Finally Reg.Destroy; End; end; Последний раз редактировалось Admin, 11.11.2010 в 17:19. |
#2
|
||||
|
||||
![]() Не все значения реестра читаются одинаково
вот попробуй так Код:
... uses registry; .... ... .. function RegQueryStr(RootKey: HKEY; Key, Name: string; Success: PBoolean = nil): string; var Handle: HKEY; Res: LongInt; DataType, DataSize: DWORD; begin if Assigned(Success) then Success^ := False; Res := RegOpenKeyEx(RootKey, PChar(Key), 0, KEY_QUERY_VALUE, Handle); if Res <> ERROR_SUCCESS then Exit; Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType, nil, @DataSize); if (Res <> ERROR_SUCCESS) or (DataType <> REG_SZ) then begin RegCloseKey(Handle); Exit; end; SetString(Result, nil, DataSize - 1); Res := RegQueryValueEx(Handle, PChar(Name), nil, @DataType, PByte(@Result[1]), @DataSize); if Assigned(Success) then Success^ := Res = ERROR_SUCCESS; RegCloseKey(Handle); end; procedure TForm1.Button1Click(Sender: TObject); begin button1.Caption:= RegQueryStr(HKEY_CURRENT_USER, 'Keyboard Layout\Preload', '1'); end; Нет ничего не возможного. Вопрос только во времени... |
#3
|
||||
|
||||
![]() И мой тебе совет - сперва научись читать параметры из реестра а потом делай изменения
в коде который ты указал выше - оно меняет значение ключа который отвечает за 1вый язык раскладки клавиатуры - тут без особых знаний реестра тебе не обойтись - противном случае повредишь систему Нет ничего не возможного. Вопрос только во времени... Последний раз редактировалось Electronic_Arts, 11.11.2010 в 18:31. |
#4
|
|||
|
|||
![]() Цитата:
Может быть НЕ следует дублировать значение HKEY_CURRENT_USER в OpenKey ? |