Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.11.2010, 16:49
dengul dengul вне форума
Прохожий
 
Регистрация: 11.11.2010
Сообщения: 1
Репутация: 10
Восклицание Реестр! Чтение параметров

Немогу заставить считать параметр реестра в 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  
Старый 11.11.2010, 18:19
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

Не все значения реестра читаются одинаково

вот попробуй так
Код:
...
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  
Старый 11.11.2010, 18:24
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 562
Версия Delphi: Delphi 11
Репутация: 18
Восклицание

И мой тебе совет - сперва научись читать параметры из реестра а потом делай изменения

в коде который ты указал выше - оно меняет значение ключа который отвечает за 1вый язык раскладки клавиатуры -
тут без особых знаний реестра тебе не обойтись - противном случае повредишь систему
__________________
Нет ничего не возможного. Вопрос только во времени...

Последний раз редактировалось Electronic_Arts, 11.11.2010 в 18:31.
Ответить с цитированием
  #4  
Старый 11.11.2010, 18:35
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Цитата:
Сообщение от dengul
...если обращаться в HKEY_CURRENT_USER и указать какой-то параметр то программа ненаходит его хотя он есть.
...
...
RootKey:=HKEY_CURRENT_USER;
OpenKey('HKEY_CURRENT_USER\Keyboard Layout\Preload',False);
[/code]

Может быть НЕ следует дублировать значение HKEY_CURRENT_USER в OpenKey ?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025