Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск программы через некоторое время. 
:(
    Опции темы
Rennigth
Дата 28.7.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Цитата(CodeMonkey @  28.7.2008,  14:58 Найти цитируемый пост)
В исходном коде try/except стоит на случай, если у нас нет прав на запись. Тогда какую именно проверку в приведённом коде вы имеете ввиду?


Я имел ввиду многих исключений можно избежать. Проверка на ExistsKey(Value) избавила бы от отного из них. Также можно проверить есть ли доступ к ключу значению св-вом Access. Я не имел ввиду что от try/finally(except) надо отказываться, я имелл вииду что от них можно зависимость снизить. В частности не генерили бы ERROR_FILE_NOT_FOUND в случае отсутствия ключа(значения).

Добавлено через 3 минуты и 6 секунд
п.с. что-то мы в офф-топ ушли...  smile 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
CodeMonkey
Дата 28.7.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Цитата(Rennigth @  28.7.2008,  15:13 Найти цитируемый пост)
Я имел ввиду многих исключений можно избежать. Проверка на ExistsKey(Value) избавила бы от отного из них.

Ну, я об этом и спрашиваю. Какого исключения и в каком месте вы имеете ввиду? 
WriteString-у наплевать на наличие/отсутствие ключа.
Или вы про 
Код
reg.openkey('software\microsoft\windows\currentversion\run',false);
?
Так она вообще не возбуждает исключений. Кроме того, отсутствие такого ключа как раз и будет внештатная ситуация (не существует системный ключ). И воспользоваться исключениями здесь будет весьма кстати.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Poseidon
Дата 28.7.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 10
Всего: 133



Цитата(Лиходей @  28.7.2008,  14:22 Найти цитируемый пост)
А почему вы считаете, что исключение может возникнуть уже на этапе создания обьекта? 
Памяти не хватит и все, приехали...



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Rennigth
Дата 28.7.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



CodeMonkey, да, вероятно вы правы, я имел ввиду OpenKey и не посмотрел что он не генерит ошибку. 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
MetalFan
  Дата 28.7.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



по поводу сабжа и дискуссии, можно предусмотреть два варианта "планирования":
1. Если у пользователя включена служба планировщика, то пользовать его
2. иначе пользовать самописный.
причем в опциях программы предоставлять возможность выбора.
тогда будут удовлетворены запросы обоих сторон спора, имхо)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Riply
Дата 28.7.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Т.к. мне лень дальше разбирать этот код (очень я ленивая),
тем более с классом и подходом, которые мне очень не нравяться,  smile 
набросала свой вариант:
Код

function Reg_AddModuleToAutoRun(const pValName, pModuleName: PWideChar): DWord;
const
 pKeyName = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run';
var
 KeyHandle: HKEY;
begin
 Result := RegOpenKeyExW(HKEY_LOCAL_MACHINE, pKeyName, 0, KEY_SET_VALUE, KeyHandle);
 if Result = ERROR_ACCESS_DENIED
  then Result := RegOpenKeyExW(HKEY_CURRENT_USER, pKeyName, 0, KEY_SET_VALUE, KeyHandle);
 if Result = ERROR_SUCCESS then
  try
   Result := RegSetValueExW(KeyHandle, pValName, 0, REG_SZ,
                            pModuleName, Length(pModuleName) * SizeOf(WideChar));
  finally
   RegCloseKey(KeyHandle);
  end;
end;


P.S.
 Возврат ERROR_ACCESS_DENIED при нехватке прав - это мое предположение,
 надо проверить что возвращает RegOpenKeyExW на самом деле.

Добавлено через 3 минуты и 4 секунды
Цитата(MetalFan @  28.7.2008,  16:22 Найти цитируемый пост)
по поводу сабжа и дискуссии, можно предусмотреть два варианта "планирования":


Ну вот, "пришел лесник и всех выгнал" (с)

MetalFan, и о чем же нам теперь спорить прикажите ?  smile 
PM MAIL   Вверх
Лиходей
Дата 28.7.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 25.5.2008

Репутация: нет
Всего: нет



Riply проверял все работает - RESPECT!!! Лично для меня очень содержательная беседа получилась, узнал много нового... Спасибо.


PM MAIL   Вверх
ReaM
Дата 27.9.2008, 15:22 (ссылка)    | (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.9.2008

Репутация: -2
Всего: -2




Модератор: Сообщение скрыто.

PM MAIL   Вверх
Riply
Дата 28.9.2008, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Выскажу ка я свое IMHO:

Переход на личности начинается там, где кончаются аргументы.
Данный случай особенно тяжелый, ибо они (аргументы) даже не начинались.

Непрекрытое хамство - обычно результат комплекса неполноценности
и единственное средство "возвысится" в собственных глазах над человеком, 
значительно превосходящем тебя, например, в умственном развитии.

Т.к. я не люблю ни то ни другое, то добавлю минус в репутацию ReaM-а. 
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1229 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.