Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
6-34530
ruben
2003-03-16 06:12
2003.05.12
Что лучше - Direct Play or WinSock


1-34418
Bug008
2003-04-23 19:30
2003.05.12
Выделение цветом слова в Edit


11-34382
Alexander
2002-07-23 14:45
2003.05.12
Кто нибудь покажет примерный исходничек, как в KOL сделать COM


1-34446
Viper_
2003-04-29 04:37
2003.05.12
Image


14-34557
Карлсон
2003-04-23 15:39
2003.05.12
почему удалили?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский