Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2013, 00:18   #1
Xaker_Two
Пользователь
 
Регистрация: 03.02.2013
Сообщений: 73
Злость Непонятная ошибка! Delphi ... ReloaD ...

В общем проблема такая же как и в теме ниже (http://programmersforum.ru/showthread.php?t=243271) только два отличия: 1: Это явление глобально! и 2: программа запускается при помощи автозапуска через ключ в реестре. И CurrentDir принимает значение параметра AutoStr.OpenKey! Глобально т.е. это не только на программе отражается но и на .bat файлах!!! Как отчистить эту переменную или может у переменных типа TRegistry есть какой-то особый параметр для этого?
Вот код процедуры записи данных в реестр! Хотя он наверное бесполезен т.к. программа завершается при выключении ПК
Код:
AutoStr:=TRegistry.Create;
AutoStr.RootKey:=HKEY_LOCAL_MACHINE;
AutoStr.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', false);
if Sender = Shutdown then if (State = 'on') and (DayToday <> '----') then
  begin
  if AutoStr.ValueExists('StrAlarm') = False then AutoStr.WriteString('StrAlarm', ExeDir+'StartClock.bat(раньше здесь был сам exe файл но результата 0)');
  end;
if Sender = AlarmIco then
  begin
  if AutoStr.ValueExists('StrAlarm') = true then AutoStr.DeleteValue('StrAlarm');
  end;
AutoStr.CloseKey;
AutoStr.Free;
До перезагрузки все робит нормальнои ничто ни счем не переплетается.
Однако после перезагрузки во время запуска программы функция GetCurrentDir выдает именно путь AutoStr.OpenKey. Так мало этого переменная %CD% в .bat файле выдает тоже самое(т.е. местоположение ключа StrAlarm без AutoStr.RootKey)!
Xaker_Two вне форума Ответить с цитированием
Старый 10.09.2013, 08:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
во время запуска программы функция GetCurrentDir выдает именно путь AutoStr.OpenKey
Ну правильно. Если твоя программа себя в автозапуск прописала, то GetCurrentDir и выдаст этот путь
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2013, 09:11   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

"локально" для программы избавляемся от GetCurentdir
Код:
extractfilepath(ParamStr(0)); 
extractfilepath(Application.Exename);
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная ошибка! Delphi Xaker_Two Помощь студентам 4 08.09.2013 21:46
Delphi, непонятная ошибка poison777 Помощь студентам 0 21.12.2012 00:34
Непонятная ошибка Delphi Irisa Помощь студентам 8 01.04.2010 03:40
непонятная ошибка в Delphi smithana Помощь студентам 2 07.06.2009 19:18
Непонятная ошибка!!! Delphi Dimon88 Помощь студентам 7 06.05.2008 00:14