Detectar que o Windows está sendo desligado

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Detectar que o Windows está sendo desligado

Mensagem por asimoes »

Essa minha solução não serve.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Detectar que o Windows está sendo desligado

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Detectar que o Windows está sendo desligado

Mensagem por sygecom »

Asimoes,

Procure por HB_PushSignalHandler(), ele interpreta o que você precisa.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
paiva_dbdc
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 12 Nov 2012 09:58
Localização: uberlandia mg

Detectar que o Windows está sendo desligado

Mensagem 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
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Detectar que o Windows está sendo desligado

Mensagem por asimoes »

Leonardo,

HB_PushSignalHandler não funciona se for feito shutdown, essa função é mais para controle da janela da aplicação.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Detectar que o Windows está sendo desligado

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Detectar que o Windows está sendo desligado

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Detectar que o Windows está sendo desligado

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Detectar que o Windows está sendo desligado

Mensagem por Kapiaba »

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Detectar que o Windows está sendo desligado

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Detectar que o Windows está sendo desligado

Mensagem 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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Detectar que o Windows está sendo desligado

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Detectar que o Windows está sendo desligado

Mensagem por asimoes »

O meu sistema é 100% hbnetio
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Detectar que o Windows está sendo desligado

Mensagem 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.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Responder