Fórum Como efetuar um Shutdown #43598
06/04/2004
0
obs: para dar tempo das estacoes de trabalho encerrar a execucao do programa.
Ex: Ao ser executado o comando de shutdown do firebird(eu nao sei q comando é esse) todas as estacoes conectadas ao banco receberiam uma mensagem na tela, como abaixo :
´O programa precisa ser encerrado em 5 minutos´
é apenas um exemplo....
Marfred
Curtir tópico
+ 0Posts
07/04/2004
Emanoel
Para dar o shutdown, você pode tentar:
procedure FBShutDown; var Wnd: HWND; ProcId: DWORD; hProcess: THandle; begin Wnd := FindWindow(PChar(´IB_Guard´), nil); if Wnd<>0 then begin GetWindowThreadProcessId(Wnd, @ProcId); hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId); PostMessage(Wnd, WM_QUIT, 0, 0); WaitForSingleObject(hProcess, INFINITE); end; Wnd := FindWindow(PChar(´IB_Server´), nil); if Wnd<>0 then begin GetWindowThreadProcessId(Wnd, @ProcId); hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId); PostMessage(Wnd, WM_QUIT, 0, 0); WaitForSingleObject(hProcess, INFINITE); end; end;
Obs.: Funcionou no FB 1.0 / Interbase :roll:
T+
Gostei + 0
07/04/2004
Maicongabriel
procedure FBShutDown; var Wnd: HWND; ProcId: DWORD; hProcess: THandle; begin Wnd := FindWindow(PChar(´IB_Guard´), nil); if Wnd<>0 then begin GetWindowThreadProcessId(Wnd, @ProcId); hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId); PostMessage(Wnd, WM_QUIT, 0, 0); WaitForSingleObject(hProcess, INFINITE); end; Wnd := FindWindow(PChar(´IB_Server´), nil); if Wnd<>0 then begin GetWindowThreadProcessId(Wnd, @ProcId); hProcess := OpenProcess(PROCESS_TERMINATE,false,ProcId); PostMessage(Wnd, WM_QUIT, 0, 0); WaitForSingleObject(hProcess, INFINITE); end; end;
:shock: :shock: :shock:
isso não é o [i:5e536cb83b]shutdown[/i:5e536cb83b], é derrubar o servidor! e não é isso que o colega deseja!
Ele seseja enviar uma mensagem antes do shutdown!
Coisa que não existe como opção junto ao shutdown (do GFix) e que deve ser implementada de outra forma!
Gostei + 0
07/04/2004
Emanoel
Derrubar o servidor e shutdown não é a mesma coisa? Se não for, gostaria de saber a diferença.
O título da pergunta é esta: ´Como efetuar um Shutdown´, e eu comecei respondendo: ´Para dar o shutdown, você pode tentar: ´.
Então a minha resposta foi apenas sobre o shutdown.
Agora a outra dúvida, como enviar uma mensagem, o colega poderia usar Client/Server Sockets. Um bom exemplo, seria um programa de Chat.
Dê uma olhada aqui:
http://delphiforum.icft.com.br/forum/viewtopic.php?t=19332
Estou certo maicongabriel??? :?
T+
Gostei + 0
12/04/2004
Maicongabriel
Ok [b:ea77f605b9]Emanoel[/b:ea77f605b9]. Mas se você não sabe o que é o ShutDown de uma base de dados, então não responda!
Gostei + 0
13/04/2004
Emanoel
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)