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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2011, 09:36   #1
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию Запись в реестр

Всем доброе утро! Значит столкнулся с такой проблемой, когда завершаешь работу Windows, и программу выключает винда, то она не записывает в реестр, хотя если самому выключать, то записывает. Как решить данную проблему?
P.S. Записываю в реестр вот так.
Код:
procedure TForm1.zapisat_dannye;
var
reg:TRegistry;
begin
reg:=TRegistry.Create;
try
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE', false);
reg.OpenKey('Монитор  трафика DeM version(2.0.0)', true);
if form1.Visible=true then begin
reg.WriteInteger('Отсуп от левого края (Окно основное)',form1.Left);
reg.WriteInteger('Отсуп от верхнего края (Окно основное)',form1.Top);
end;
finally
freeandnil(reg);
end;
end;
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 26.02.2011, 11:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А где вызывается этот метод?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2011, 11:23   #3
novichok1
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 25
По умолчанию

Попробуйте вызвать это действие в событиях onClose и onDestroy
novichok1 вне форума Ответить с цитированием
Старый 26.02.2011, 12:32   #4
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
А где вызывается этот метод?
Цитата:
Попробуйте вызвать это действие в событиях onClose и onDestroy
Да забыл упомянуть вызываю в событии onDestroy.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 26.02.2011, 13:32   #5
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Попробуйте поймать сообшение WM_Close своей прогой. и его обрабатывайте.
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Старый 26.02.2011, 14:14   #6
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Всем спасибо кто откликнулся отдельная благодарность Ghost of Night
Решил проблему так
Код:
  public
    { Public declarations }
    protected procedure IsWindowsShutDown(var Msg: TMessage); message WM_QUERYENDSESSION;

...

procedure TForm1.IsWindowsShutDown(var Msg: TMessage);
begin
inherited;     // выгружаем приложение
zapisat_dannye;
application.MainForm.Close;
end;
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 26.02.2011, 14:39   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
WM_QUERYENDSESSION;
Вот это я и хотел выяснить.
Цитата:
Попробуйте вызвать это действие в событиях onClose и onDestroy
Они не помогут отловить и обработать завершение сейнса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в реестр. Кристинка89 Общие вопросы Delphi 9 10.02.2011 15:50
Запись в реестр zotox Win Api 7 31.10.2010 21:36
Запись в реестр arxidevill Общие вопросы Delphi 4 13.05.2010 00:29
Запись программы в реестр Sparky Паскаль, Turbo Pascal, PascalABC.NET 1 28.10.2009 13:03
Как реализовать запись hex в реестр? Ant1Player Общие вопросы Delphi 18 07.07.2009 20:25