![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 ? |