Fórum Desinstalar o Firebird usando o delphi #58840
12/09/2007
0
Boa tarde.
Pessoal, estou com o seguinte problema :
Como é que eu paro o Servidor Firebird, quando este é executado como aplicação e não como serviço?
Já tentei de tudo que encontrei na internet. Mas os exemplos disponíveis são para dar Stop no INSTSVC.EXE e não no FBSERVER.EXE.
O motivo desta consulta é que tenho uma aplicação que será instalada utilizando o Inno Setup e junto com ela, estarei mandando os arquivos do Firebird. O Firebird será executado como Aplicação.
Estou Usando o Delphi 2006 e o Zip Kit do Firebird 2.0.
Me expliquem como eu para tanto através de Linha de comando dentro da pasta Bin e como Para atrvés do Delphi usando a Api do windows ou sei lá o que. Vai ver que isto é fácil e eu é que sou limitado mesmo.
Obrigado.
Pessoal, estou com o seguinte problema :
Como é que eu paro o Servidor Firebird, quando este é executado como aplicação e não como serviço?
Já tentei de tudo que encontrei na internet. Mas os exemplos disponíveis são para dar Stop no INSTSVC.EXE e não no FBSERVER.EXE.
O motivo desta consulta é que tenho uma aplicação que será instalada utilizando o Inno Setup e junto com ela, estarei mandando os arquivos do Firebird. O Firebird será executado como Aplicação.
Estou Usando o Delphi 2006 e o Zip Kit do Firebird 2.0.
Me expliquem como eu para tanto através de Linha de comando dentro da pasta Bin e como Para atrvés do Delphi usando a Api do windows ou sei lá o que. Vai ver que isto é fácil e eu é que sou limitado mesmo.
Obrigado.
Junior Miranda
Curtir tópico
+ 0
Responder
Posts
16/09/2007
Sremulador
Para parar o serviço
Via linha de comando
Iniciar
function FirebirdBaixado:Boolean; var lHWND : HWND; schm, schs : SC_Handle; Stat : TServiceStatus; Espera : Integer; begin try Screen.Cursor := crHourglass; if (Win32Platform=VER_PLATFORM_WIN32_WINDOWS) then begin lHWND := FindWindow(´IB_Server´,´InterBase Server´); PostMessage(lHWND,WM_CLOSE,0,0); end else if (Win32Platform=VER_PLATFORM_WIN32_NT) then begin schm := OpenSCManager(´´,nil,SC_MANAGER_CONNECT); if (schm>0) then begin schs := OpenService(schm,´InterbaseServer´,SERVICE_STOP); Application.ProcessMessages; ControlService(schs,SERVICE_CONTROL_STOP,Stat); CloseServiceHandle(schs); end; CloseServiceHandle(schm); end; finally Application.ProcessMessages; Espera := 0; while ((FindWindow(´IB_Server´,´InterBase Server´)<>0) and (Espera<100)) do begin Application.ProcessMessages; Sleep(500); Inc(Espera); end; Screen.Cursor := crDefault; Result := ( ( FindWindow( ´IB_Server´, ´InterBase Server´ ) = 0 ) and ( FindWindow( ´FB_Server´,´FireBird Server´ ) = 0 ) ); end; end;
Via linha de comando
gfix -shut -user SYSDBA -password masterkey
Iniciar
gfix-start -user SYSDBA -password masterkey
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)