Форум: "WinAPI";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
ВнизКак перехватить завершение работы Windows ? Найти похожие ветки
← →
_Ivan (2005-07-06 18:29) [0]Подскажите как из своей программы перехватить завершение/перезагрузку Windows ?
Спасибо!
← →
begin...end © (2005-07-06 18:44) [1]WM_ENDSESSION ?
← →
Ванечка (2005-07-07 09:48) [2]Вот держи:
{
To detect a Windows Shutdown, you must trap the
WM_EndSession message.
Declare a message handling procedure in your Form"s Private section.
Um herauszufinden, ob Windows heruntergefahren wird, muss
die WM_EndSession abgefangen werden.
}
type
TForm1 = class(TForm)
private
procedure WMEndSession(var Msg: TWMEndSession); message WM_ENDSESSION;
public
end;
implementation
{$R *.DFM}
procedure TForm1.WMEndSession(var Msg: TWMEndSession);
begin
if Msg.EndSession = True then
ShowMessage("Windows is shutting down!");
inherited;
end;
← →
_Ivan (2005-07-07 11:51) [3]>Ванечка (07.07.05 09:48) [2]
Спасибо!
А как быть, если приложение не имеет формы ?
← →
Digitman © (2005-07-07 11:55) [4]
> как быть, если приложение не имеет формы ?
Application используется ?
← →
Игорь Шевченко © (2005-07-07 12:00) [5]
> А как быть, если приложение не имеет формы ?
Для консольных - SetConsoleCtrlHandler и обрабатывать CTRL_SHUTDOWN_EVENT
← →
_Ivan (2005-07-07 12:00) [6]Digitman © (07.07.05 11:55) [4]
Да. Но мне хотелось бы узнать, как это сделать средствами API
← →
_Ivan (2005-07-07 12:01) [7]Спасибо, сейчас попробую
← →
Digitman © (2005-07-07 12:23) [8]
> _Ivan (07.07.05 12:00) [6]
для GUI-приложений :
hwnd := CreateWindow(..);
..
while GetMessage(hwnd, Msg, 0, 0, 0) do begin
if Msg.message = WM_ENDSESSION then ..;
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c