Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Вопрос по реестру


Автор: megalib 8.10.2006, 00:51
Добрый день!

Ниже написана функция, которая регистрирует и прикрепляет тип файла к файлу которым будет открываться новый тип файла. Но вот у некоторых пользователей эта штука дает ошибку. Выскакивает окно с надписью вроде "Failed to set ...". Хочу узнать - может ли это как-то связано с тем, что у пользователя мало прав и прога не может записать в реестр данные? Если это так, то что нужно делать в данном случае?
Код

function RegisterFileType(ext: string; FileName: string):boolean;
var
  reg: TRegistry;
begin
  reg:=TRegistry.Create;
  with reg do
  begin
    RootKey:=HKEY_CLASSES_ROOT;
    OpenKey('.'+ext,True);
    WriteString('',ext+'file');
    CloseKey;

    CreateKey(ext+'file');
    OpenKey(ext+'file\DefaultIcon',True);
    WriteString('',FileName+',0');
    CloseKey;

    OpenKey(ext+'file\shell\open\command',True);
    WriteString('',FileName+' "%1"');
    CloseKey;

    Free;
  end;
end;


Добавлено @ 01:03 
К слову: есть ли в реестре раздел, в который можно писать при любы самых малых правах?

Автор: Snowy 8.10.2006, 01:28
В HKEY_CLASSES_ROOT нельзя писать без админских прав.
Без админских прав можно писать только в HKEY_CURRENT_USER

Добавлено @ 01:29 
Цитата(megalib @  8.10.2006,  00:51 Найти цитируемый пост)
писать при любы самых малых правах?
Самые маленькие права - гостевые.
При них никуда писать нельзя. А с обычными пользовательскими можно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)