Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.12;
Скачать: CL | DM;

Вниз

Реестр   Найти похожие ветки 

 
Tapchyk   (2003-04-29 01:29) [0]

У меня такая проблема: мне нужно создать новий параметр в реєстре, я создаю переменную типа TRegistry, потом делаю СreateKey. Так вот, когда у меня есть права создать етот ключ, то проблем нет, все нормально, а когда нет прав, то вискакивает ошибка. Как сделать так, чтоб ошибка не вискакивала, а в программе я просто узнал, создан ключ или нет? Заранее благодарен.


 
Goffman   (2003-04-29 06:45) [1]

Помести код создания ключа в защищенный блок
try
CreateYourRegistryKey;
except
Действия при ошибке
end;


 
Separator ©   (2003-04-29 07:00) [2]

var
Reg: TRegistry;
begin
Reg:= TRegistry.Create;
if Reg.OpenKey("KeyName", true) then begin

end else begin

end
end


 
Дмитрий К.К. ©   (2003-04-29 07:17) [3]

F1. Там есть пример.


 
Tapchyk   (2003-04-29 11:40) [4]

Посмотрите я делаю так, но все равно когла у меня нет прав на создание ключа програма не просто проглативает ето, а видает ошибку. ТО есть когда компилирую в Delphi (а не запускаю екзешку) оно вообще вишибает программу. Говорит "Failed to create key "MyKey"". Помогите.


procedure tform1.toregistryint(root:HKEY;key,param:string;check:tcheckbox);
var Reg: TRegistry;
b:boolean;
begin b:=false;
Reg := TRegistry.Create;
try Reg.RootKey := root;
if Reg.OpenKey(key,false)=false then
begin

try if Reg.createKey(key) then b:=true;
except
b:=false
end;


 
Goffman ©   (2003-04-29 11:52) [5]

У тебя эта процедура вообще не дожна компилироваться. Что значит вышибает?


 
evvcom ©   (2003-04-29 12:53) [6]

Более оптимальный вариант:

with TRegistry.Create do
try
RootKey := root;
if OpenKey(key, True) then
DoSomething;
finally
Free;
end;

Здесь в случае exception тебя должно выкидывать в отладчик, если стоит галка (по-умолчанию она стоит) Tools>Debugger Options>Language Exceptions>Stop on Delphi Exceptions, но "вышибать" совсем - не понятно.


 
Tapchyk   (2003-04-29 14:43) [7]

Ета процедура написана не до конца, а только часть. ТО что написал evvcom ето и есть вишибает. Просто видает дельфовскою ошибку. Я понимаю что ети try...finally (except) должн помагать, но не тут то било :-(


 
evvcom ©   (2003-04-29 22:36) [8]

Не знаю как это работает в версиях выше пятой, но до пятой включительно действительно так. Если Дельфи встречает исключение, то дает об этом знать (при установленной галке), но про try except/finally напрочь забывает. Надеюсь, что когда-нибудь Борланд обратит на это внимание. Для отладки подобных мест убирай временно галку, тогда не должно "вышибать".
А вообще разбирайся с тем, куда можно писать, а куда нет в реестре. Может в этом все и дело-то?


 
Goffman ©   (2003-04-30 06:18) [9]


> Я понимаю что ети try...finally (except) должн помагать

Блок try-finally-end тебе не поможет подавить исключение (в отличие от except). Это я к тому, вдруг ты на это рассчитываешь:)


 
Xeon ©   (2003-04-30 06:52) [10]

Слушь, ты видать пытаешься создать ключ в защищёной области реестра? помоему я тя ничё не выйдет в любом случае! Т.к. некоторрые области реестра ты не имеешь право ни менять, ни создавать! Т.к. они системные... В них может токо винда чё-то делать, да и то не на прямую, как как бы с помощью добавления новой записи в базу данных. Типа "открыл файл, записал строку". Поэтому мой те совет: НЕ ПАРЬ СЕБЕ МОЗГИ! Есть разделы реестра в кторых можешь создавать чё хош! И удалять тоже :)


 
Tapchyk   (2003-04-30 10:45) [11]

Нет Xeon например я поставил прогу на компе, на каком у меня права юзера, и чтоб у меня на каждом шаге не видавало ошибку. Просто чтоб, прога знала, что не удалось и больше никто :-)



Страницы: 1 вся ветка

Текущий архив: 2003.05.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
11-34385
Линда
2002-08-11 20:07
2003.05.12
Есть ли в KOL компонента для отправки сообщение


4-34644
squab
2003-03-11 23:04
2003.05.12
перетаскивание окна.


8-34517
Blastoderm
2003-01-22 14:45
2003.05.12
TAnimate->OnClick ?


1-34468
Zirus
2003-04-29 11:33
2003.05.12
закладки в pagecontrol


14-34589
Mystic
2003-04-21 10:52
2003.05.12
Соревнование по программированию (Delphi)