Вниз
Скачать: CL | DM;

Завершение работы Windows   Найти похожие ветки 

← →
Volhv   (2003-01-29 11:00) [0]

Доброго всем дня!
Проблема: запущено Delphi-приложение. При попытке перезагрузить или завершить работу Windows из памяти выгружаются некоторые процессы, а перезагрузка (завершение работы) не происходит.
Ловлю сообщение WM_QUERYENDSESSION:
procedure TFщкь1.WMQueryEndSession(var Msg:TWMQueryEndSession);
begin
inherited;
Msg.Result:=1;
end;
Бесполезно. Мое приложение не закрывается, Windows не завершает работу. Делал еще:
procedure TFщкь1.WMQueryEndSession(var Msg:TWMQueryEndSession);
begin
inherited;
Msg.Result:=1;
Close;
end;
Мое приложение закрывается, Windows НЕ завершает работу.
Есть какие-нибудь соображения на этот счет?


← →
ККВ ©   (2003-01-29 12:25) [1]

Комментарий от "Макса" (halyavshik@mailru.com)
небольшое дополнение как выключить компутер с NT корректно компилируется в Delphi5 в 4 какие-то
проблемы с описанием констант привиллегий в других версиях Delphi не проверял:
program NTShutdown;
uses windows;
var
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then begin
LookupPrivilegeValue(nil, "SeShutdownPrivilege",
tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1; // one privelege to set
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength)
then
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
end;
end.


← →
Volhv   (2003-01-29 13:07) [2]

Так пробовал - не выходит. У меня Delphi 6. Компилируется нормально.
Вообще, проблема только под Windows 2000 (NT не знаю, наверное, тоже)


← →
Volhv   (2003-01-29 13:52) [3]

Спасибо, уже решил! Помогло:
procedure TForm1.WMQueryEndSession(var Msg:TWMQueryEndSession);
begin
inherited;
Msg.Result:=1;
CallTerminateProcs;
Halt;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
1-76437
NEEDHelp
2003-03-11 23:39
2003.03.24
Delphi ERROR


1-76385
Menshikov
2003-03-11 16:09
2003.03.24
Печать 2-х копий текста А5 на 1 листе А4


6-76554
neodiX
2003-01-30 15:56
2003.03.24
Subnet mask & broadcast


14-76667
eger
2003-03-09 01:07
2003.03.24
OnlineIp - вопрос


8-76515
Sergius
2002-12-11 15:30
2003.03.24
OpenGL и рабочий стол




   Наверх