[firebase-br] Saber se o Firebird esta rodando ou não!
José Luiz
zeluizdala em terra.com.br
Seg Abr 21 13:58:01 -03 2008
Valeu colega, só um detalhe que função é essa: GetProcessList ? Não tenho
ela, vc tem como me enviar?
Pelo que entendi ele só carrega se o windows for diferente do win2000, XP ou
2003, mas e para esses Sistemas operacionais, como funciona?
[]s
----- Original Message -----
From: "Anticlei Scheid" <clei em geous.com.br>
To: "José Luiz" <zeluizdala em terra.com.br>; "FireBase"
<lista em firebase.com.br>
Sent: Monday, April 21, 2008 8:21 AM
Subject: Re: [firebase-br]Saber se o Firebird esta rodando ou não!
Bom dia.
Se for Delphi anota aí :
Quando inicio o aplicativo coloco este trecho no FormShow, ou onde você
preferir
...
//coloca o firebird no ar se não estiver
if not EXE_Running('fbguard.exe',False) then
begin
if (Win32Platform <> VER_PLATFORM_WIN32_NT) then //não é XP, 2000 ou
2003
begin
StatusBar.SimpleText:= 'Carregando o servidor de Banco de Dados
Firebird ...';
Application.ProcessMessages;
if
FileExists(ArquivosDeProgramas+'\Firebird\Firebird_1_5\bin\fbguard.exe')
then
begin
ArqExec:= TFileRun.Create(self);
with ArqExec do
begin
Directory:= ArquivosDeProgramas+'\Firebird\Firebird_1_5\bin';
FileName:= 'fbguard.exe';
Parameters:= '-a';
Operation:= 'open';
ShowCmd:= scShowDefault;
Execute;
Application.ProcessMessages;
end;
Sleep(2000);
end
else
raise Exception.Create(
'Não foi possível carregar o servidor de Banco de Dados
Firebird,'+#13+#10+
'pois não foi encontrado o arquivo'+#13+#10+
'"'+ArquivosDeProgramas+'\Firebird\Firebird_1_5\bin\fbguard.exe"');
end
else
raise Exception.Create(
'Houve algum erro na instalação do servidor de Banco de Dados
Firebird,'+#13+#10+
'pois o serviço "fbguard" não está carregado.'+#13+#10+
'Tente instalar novamente o Firebird.');
end;
...
Depois tem a função EXE_Running que usei no trecho e que peguei numa outra
lista de discussão :
function EXE_Running(FileName: string; bFullpath: Boolean):Boolean;
var
i: Integer;
MyProcList: TStringList;
begin
MyProcList:= TStringList.Create;
try
GetProcessList(MyProcList);
Result := False;
if MyProcList = nil then Exit;
for i := 0 to MyProcList.Count - 1 do
begin
if not bFullpath then
begin
if CompareText(ExtractFileName(MyProcList.Strings[i]),FileName) = 0
then
Result := True
end
else if CompareText(MyProcList.strings[i], FileName) = 0 then
Result := True;
if Result then
Break;
end;
finally
MyProcList.Free;
end;
end;
Espero ter ajudado.
Se não servir exatamente, já é uma boa pista.
----- Original Message -----
From: "José Luiz" <zeluizdala em terra.com.br>
To: <lista em firebase.com.br>
Sent: Sunday, April 20, 2008 8:52 PM
Subject: [firebase-br] Saber se o Firebird esta rodando ou não!
Ola
Gostaria de saber se alguém uma rotina que eu possa usar nos meus programas
que identifique se o firebird esta ou não ativo/rodando na máquina que vai
executar o programa, caso não esteja execute. Tem como fazer isso?
Grato.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
--
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.524 / Virus Database: 269.23.2/1388 - Release Date: 20/4/2008
15:01
Mais detalhes sobre a lista de discussão lista