Detectar que o Windows está sendo desligado
Moderador: Moderadores
Detectar que o Windows está sendo desligado
Pessoal,
Existe alguma função que detecte que o windows está sendo desligado ou logoff ? para proteger o sistea de eventuais perdas de dados.
Existe alguma função que detecte que o windows está sendo desligado ou logoff ? para proteger o sistea de eventuais perdas de dados.
►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)
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)
Detectar que o Windows está sendo desligado
Não sei como isso é possível...
Mas tem um tópico no fórum Xailer falando sobre isto... dá pra ter uma ideia e quem sabe te ajude... segue link
Parece q é algo relacionado ao WM_ENDSESSION message do Windows...
Aki fala sobre como mandar encerrar o Windows... quem sabe da pra nesse código pensar em algo pra saber se esta sendo desligado.
Mas tem um tópico no fórum Xailer falando sobre isto... dá pra ter uma ideia e quem sabe te ajude... segue link
Parece q é algo relacionado ao WM_ENDSESSION message do Windows...
Aki fala sobre como mandar encerrar o Windows... quem sabe da pra nesse código pensar em algo pra saber se esta sendo desligado.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
Detectar que o Windows está sendo desligado
Olá Fladimir,
Eu achei essa informação no MSDN mas não sei como implementar.
https://msdn.microsoft.com/pt-br/librar ... s.85).aspx
WindowProc callback function
An application-defined function that processes messages sent to a window. The WNDPROC type defines a pointer to this callback function.
WindowProc is a placeholder for the application-defined function name.
Eu achei essa informação no MSDN mas não sei como implementar.
https://msdn.microsoft.com/pt-br/librar ... s.85).aspx
WindowProc callback function
An application-defined function that processes messages sent to a window. The WNDPROC type defines a pointer to this callback function.
WindowProc is a placeholder for the application-defined function name.
Código: Selecionar todos
LRESULT CALLBACK WindowProc(
_In_ HWND hwnd,
_In_ UINT uMsg,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Código: Selecionar todos
LRESULT CALLBACK windowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
//...
case WM_QUERYENDSESSION: return TRUE;
case WM_ENDSESSION:
if(wParam) PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,msg,wParam,lParam);
}
return FALSE;
}
►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)
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)
Detectar que o Windows está sendo desligado
A situação é a seguinte, um processo é iniciado em um determinado horário e não pode ser interrompido, mas no momento do processo, o servidor fez um shutdown ou logoff isso precisa ser interceptado para que a aplicação faça um registro "em que pé tá o processamento", será que eu viajei muito ?
►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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Detectar que o Windows está sendo desligado
Não entendi.
Porque precisa saber se o Windows desligou?
Não é só a rotina saber se terminou?
Porque precisa saber se o Windows desligou?
Não é só a rotina saber se terminou?
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/
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/
Detectar que o Windows está sendo desligado
Quintas,
A questão não é saber que o windows desligou e sim que ele está sendo encerrado, pescou?
A questão não é saber que o windows desligou e sim que ele está sendo encerrado, pescou?
►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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Detectar que o Windows está sendo desligado
Código: Selecionar todos
IF File( "naoterminou.txt" )
MsgExclamation( "Rotina não foi terminada na vez anterior" )
RETURN
ENDIF
MemoWrit( "naoterminou.txt", "teste" )
DO WHILE .NOT. Eof()
SKIP
ENDDO
CLOSE DATABASES
fErase( "naoterminou.txt" )
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/
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/
Detectar que o Windows está sendo desligado
Quintas,
A situação é em uma atualização critica, tem que iniciar e finalizar sem interrupções.
Sei que em caso de processo incompleto, teria que voltar o backup.
A ideia então é saber aonde parou o processamento e continuar a partir dele ou antes dele.
A situação é em uma atualização critica, tem que iniciar e finalizar sem interrupções.
Sei que em caso de processo incompleto, teria que voltar o backup.
A ideia então é saber aonde parou o processamento e continuar a partir dele ou antes dele.
►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)
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)
Detectar que o Windows está sendo desligado
aSimoes,
O Quintas compreende coisas difíceis, mas não as fáceis! kkkk
)
Eu entendi o que vc deseja e adoraria se isso existisse tbm: a aplicação detectar que foi pedido por alguma criatura para que o Windows seja desligado ou reiniciado. Como o processo é crítico e tem que ir até o fim, o ideal era o sistema detectar esse pedido de desligamento e antes de que se complete, apresentar msg: "AMIGÃO, TO FAZENDO UMA ATUALIZACAO AQUI DE TABELAS QUE NÃO PODE PARAR! VA TOMAR UM CAFÉ, BEBER UMA ÁGUA, DORMIR UM POUCO, MAS NAO DESLIGUE O WINDOWS AGORA"
Problemas:
Se a atualização estiver sendo executada no servidor e for este que estiver sendo desligado... ok, talvez daria para impedir esse desligamento. Mas se a atualização estiver sendo processada numa estação e estiverem desligando o servidor... aí complica o meio de campo
Janio
O Quintas compreende coisas difíceis, mas não as fáceis! kkkk
Eu entendi o que vc deseja e adoraria se isso existisse tbm: a aplicação detectar que foi pedido por alguma criatura para que o Windows seja desligado ou reiniciado. Como o processo é crítico e tem que ir até o fim, o ideal era o sistema detectar esse pedido de desligamento e antes de que se complete, apresentar msg: "AMIGÃO, TO FAZENDO UMA ATUALIZACAO AQUI DE TABELAS QUE NÃO PODE PARAR! VA TOMAR UM CAFÉ, BEBER UMA ÁGUA, DORMIR UM POUCO, MAS NAO DESLIGUE O WINDOWS AGORA"
Problemas:
Se a atualização estiver sendo executada no servidor e for este que estiver sendo desligado... ok, talvez daria para impedir esse desligamento. Mas se a atualização estiver sendo processada numa estação e estiverem desligando o servidor... aí complica o meio de campo
Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Detectar que o Windows está sendo desligado
Janio,
Você captou a minha ideia.
O difícil é criar a função que é em C para interceptar o momento que o windows entra em modo de desligamento ou logoff
Você captou a minha ideia.
O difícil é criar a função que é em C para interceptar o momento que o windows entra em modo de desligamento 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)
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)
Detectar que o Windows está sendo desligado
aSimoes,
Talvez uma solução 'quebra-galho' seria retirar o poder do usuário fazer o desligamento do Windows, através do registro (gpedit.msc)!
Janio
Talvez uma solução 'quebra-galho' seria retirar o poder do usuário fazer o desligamento do Windows, através do registro (gpedit.msc)!
Janio
Detectar que o Windows está sendo desligado
aSimoes,
Fazer essa interceptação é possível! Veja o programa do link abaixo:
http://www.baboo.com.br/software/proiba ... de-seu-pc/
Basta alguém que desenvolva isso para embutirmos nos nossos sistemas!
:-´
Janio
Fazer essa interceptação é possível! Veja o programa do link abaixo:
http://www.baboo.com.br/software/proiba ... de-seu-pc/
Basta alguém que desenvolva isso para embutirmos nos nossos sistemas!
:-´
Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Detectar que o Windows está sendo desligado
Eu ainda não entendi o uso prático.
Se o computador parou.... parou..... rs
No VB tem algo nesse sentido, que é como foi solicitado o fechamento da janela, se foi o usuário ou o Windows e algo mais.
Mas o mais prático é o aplicativo controlar ele mesmo.
O usuário pode muito bem ir lá no gerenciador de tarefas e fechar a aplicação, e isso não seria o Windows desligando.
Se o computador parou.... parou..... rs
No VB tem algo nesse sentido, que é como foi solicitado o fechamento da janela, se foi o usuário ou o Windows e algo mais.
Código: Selecionar todos
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
End Sub
O usuário pode muito bem ir lá no gerenciador de tarefas e fechar a aplicação, e isso não seria o Windows desligando.
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/
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/
Detectar que o Windows está sendo desligado
Tem como enganar a forma é lusitana
Todas as janelas windows são encerradas com Escape, então, no momento do processamento colocar em idle a função escape()
Desta forma se a aplicação não desativar o escape, vai ter que desligar no botão, kkkkk
Todas as janelas windows são encerradas com Escape, então, no momento do processamento colocar em idle a função escape()
Desta forma se a aplicação não desativar o escape, vai ter que desligar no botão, kkkkk
Código: Selecionar todos
STATIC nIdle
STATIC nTempo
AtivaEscape(.T.) //Ativa o escape
AtivaEscape() //Desativa o escape
FUNCTION AtivaEscape(lAtiva)
PUBLIC nTmpSistema := 1 // 1 segundo
hb_Default(@lAtiva, .F.)
IF lAtiva
nIdle := hb_IdleAdd( {|| CheckEscape() } )
ELSE
IF nIdle != Nil
hb_IdleDel( nIdle )
ENDIF
ENDIF
RETURN .T.
FUNCTION CheckEscape
IF nTempo = Nil
nTempo := Seconds()
ENDIF
IF Seconds() - nTempo >= nTmpSistema
Escape()
nTempo := Seconds()
ENDIF
RETURN Nil
FUNCTION Escape()
oShell := Win_OleCreateObject( "WScript.Shell" )
oShell:SendKeys("{ESC}")
RETURN .T.
►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)
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)
Detectar que o Windows está sendo desligado
AtivaEscape(.T.)
DO WHILE .T.
.... processando alguma coisa
ENDDO
...Terminou
AtivaEscape()
DO WHILE .T.
.... processando alguma coisa
ENDDO
...Terminou
AtivaEscape()
►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)
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)
