На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Win Api / Мне нужно программно установить некоторые файлы с установочного диска Windows. На многих компьютерах CAB-файлы установки Windows находятся в каком-то каталоге на жестком диске, на других - Windows был установлен с CD. Как узнать откуда была установленна Windows? Сделать домашней страницей Добавить в избранное Написать писмо

Мне нужно программно установить некоторые файлы с установочного диска Windows. На многих компьютерах CAB-файлы установки Windows находятся в каком-то каталоге на жестком диске, на других - Windows был установлен с CD. Как узнать откуда была установленна Windows?


Эту информацию можно получить из реестра.
Пример:

uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
   reg: TRegistry;
begin
   reg := TRegistry.Create;
   reg.RootKey := HKEY_LOCAL_MACHINE;
   reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\SETUP',false);
   ShowMessage(reg.ReadString('SourcePath'));
   reg.CloseKey;
   reg.free;
end;



Комментарий от kidaloff (kidaloff@main.argo.mv.ru)
 Указанный код сработает только в том случае, если пользователь имеет
 права администратора, в общем же случае выскочит Exception.
 Объясняю почему ->
 Дело в том что функция Reg.OpenKey - переопределенная - она пытается
 открыть ключ реестра с уровнем доступа для записи, а в куст HKLM
 записывать можно только с правами администратора - следовательно
 выскочит Exception.
 Для решения этой проблеммы, нужно использовать функции
 Reg.OpenKeyReadOnly, которая открывает указанный ключ только для
 чтения...

Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz