Essa é realmente dificil...Gerenciador de tarefas??
09/02/2003
0
E ai Colega??
O meu problema é o seguinte, preciso detectar quando um determinado programa é fechado, e se for fechado, tenho que desligar o pc. O problema é, como fazer para detectar o fechamento deste aplicativo?? será que é pelo gerenciador de tarefas do windows? Se alguem puder me ajudar fico muito grato
SANSES
O meu problema é o seguinte, preciso detectar quando um determinado programa é fechado, e se for fechado, tenho que desligar o pc. O problema é, como fazer para detectar o fechamento deste aplicativo?? será que é pelo gerenciador de tarefas do windows? Se alguem puder me ajudar fico muito grato
SANSES
Sanses
Curtir tópico
+ 0
Responder
Posts
10/02/2003
Carnette
Não é bem a resposta que voce queria...Mas, é o caminho...
Esta dica ensina como interromper o processo de desligamento do Windows. Com esta dica você poderá evitar que desliguem o Windows enquanto a sua aplicação estiver aberta e correr o risco de perder ou corromper dados. O código abaixo mostra como fazer isto.
private
{ Private declarations }
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
if MessageDlg(´O Windows deseja desligar agora, Permitir ?´, mtConfirmation, [mbYes,mbNo], 0) = mrNo then
Msg.Result := 0
else
Msg.Result := 1;
end;
A Msg ´WM_QUERYENDSESSION´ é enviada para todas as aplicações que estão ´abertas´ quando o usuário clica em uma das opções ´desligar´ do windows ou quando uma aplicação chama a função ´ExitWindows´. Se qualquer aplicação retornar zero, o Windows não se fechará e sistema irá parar de enviar as Msg ´WM_QUERYENDSESSION´.
Após ter processado esta Msg, o sistema envia a mensagem ´WM_ENDSESSION´ junto do parâmetro ´wParam´ com os resultados da mensagem de ´WM_QUERYENDSESSION´. Finalizando ou não o Windows.
Esta dica ensina como interromper o processo de desligamento do Windows. Com esta dica você poderá evitar que desliguem o Windows enquanto a sua aplicação estiver aberta e correr o risco de perder ou corromper dados. O código abaixo mostra como fazer isto.
private
{ Private declarations }
procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
if MessageDlg(´O Windows deseja desligar agora, Permitir ?´, mtConfirmation, [mbYes,mbNo], 0) = mrNo then
Msg.Result := 0
else
Msg.Result := 1;
end;
A Msg ´WM_QUERYENDSESSION´ é enviada para todas as aplicações que estão ´abertas´ quando o usuário clica em uma das opções ´desligar´ do windows ou quando uma aplicação chama a função ´ExitWindows´. Se qualquer aplicação retornar zero, o Windows não se fechará e sistema irá parar de enviar as Msg ´WM_QUERYENDSESSION´.
Após ter processado esta Msg, o sistema envia a mensagem ´WM_ENDSESSION´ junto do parâmetro ´wParam´ com os resultados da mensagem de ´WM_QUERYENDSESSION´. Finalizando ou não o Windows.
Responder
Clique aqui para fazer login e interagir na Comunidade :)