Página 2 de 3

Detectar que o Windows está sendo desligado

Enviado: 19 Jun 2016 21:14
por asimoes
Essa minha solução não serve.

Detectar que o Windows está sendo desligado

Enviado: 19 Jun 2016 21:38
por JoséQuintas
Se o Windows for desligado, o programa também vai ter sido desligado.
Vai detectar o que com o que?.... rs

Vamos à opção:
O aviso vai ser enviado à janela.
A janela é que precisa ter a rotina de tratamento disso.
Como fazer? Complicado, porque precisa estudar se a LIB GUI vai tratar isso do jeito que deveria.

Mas não sei se basta o programa enviar um aviso ao Windows, para que ele espere.
Talvez se o Windows não receber resposta considere que o programa travou, ou não tem o recurso, e fecha a força.

Aquele fonte que mostrou, de interceptar o desligamento do Windows, toda LIB gráfica tem algo pra interceptar mensagens do Windows.
Só com ajuda dos mestres da LIB em questão. É provável que a solução de uma não sirva pra outra.
Justamente a LIB já tem algo pra interceptar TODAS as mensagens do Windows, então é lá que precisa ser alterado.

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 00:16
por sygecom
Asimoes,

Procure por HB_PushSignalHandler(), ele interpreta o que você precisa.

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 13:05
por paiva_dbdc
Seria interessante.

uso muito TS e os clientes desligam o PC SEM sair do TS.

se desse para saber se poderia forcar fechar os arquivos antes

PAiva

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 13:35
por asimoes
Leonardo,

HB_PushSignalHandler não funciona se for feito shutdown, essa função é mais para controle da janela da aplicação.

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 13:43
por asimoes
Eu achei essa necessidade em vários sites de c++, mas não consegui entender a solução, provavelmente teria que ter um sistema sentinela monitorando o evento de shutdown e logoff e enviar uma mensagem para a aplicação que o windows disparou um shutdown ou logoff

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 13:50
por asimoes
Achei isso:

To cancel a restart or shutdown

Open Command Prompt.

Type shutdown /a within the time-out period.

https://technet.microsoft.com/en-us/lib ... s.11).aspx

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 14:53
por Kapiaba

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 14:56
por asimoes
O processo de shutdown é muito rápido, acho que a única opção seria desabilitar no registro do windows durante o processo e depois reabilitar

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 14:56
por Kapiaba

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 15:19
por JoséQuintas
uso muito TS e os clientes desligam o PC SEM sair do TS.
Remote ou remoteapp?
remoteapp é muito mais interessante, apesar de não evitar esse problema do desligamento.

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 15:23
por asimoes
É Quintas, você tá coma razão tentei de tudo aqui, mas o windows desliga e dane-se o que está em execução.

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 16:04
por JoséQuintas
Pois é.

- Windows desligar normal
- Windows reiniciar após atualização
- Fechar no gerenciador de tarefas
- Usuário fazer logoff
- Acabar a luz
- Entrar no modo hibernação

Talvez melhor limitar ao aplicativo checar se fez o que deveria fazer.
Mesmo assim, não é 100% eficiente.
De repente, por causa do cache, o controle é atualizado e o resto não.

Nesse ponto é onde os bancos de dados cliente/servidor se destacam.

Uma coisa que já pensei foi usar o hbnetio como parte do aplicativo, já que ele consegue executar rotinas.
Deixar toda atualização importante do lado do servidor, no hbnetio.

Detectar que o Windows está sendo desligado

Enviado: 20 Jun 2016 16:17
por asimoes
O meu sistema é 100% hbnetio

Detectar que o Windows está sendo desligado

Enviado: 08 Jun 2017 12:00
por acelconsultoria
Encontrei esse pequeno aplicativo Free que pode ser acionado/configurado via BAT. Não é algo nativo, nem genial, mas pode suprir a necessidade de impedir o desligamento do windows.

"Don't Sleep"

http://www.softwareok.com/?seite=faq-DontSleep&faq=6

Tem alguns exemplos no site. Tudo em inglês.