Fórum Como saber se o manmysql.exe está rodando ?(delphi mysql) #347701

22/10/2007

0

Existe um programa que fica na pasta bin do mysql chamado manmysql.exe. Eu queria saber como verificar se ele está rodando.


Josinaldo

Josinaldo

Responder

Posts

22/10/2007

Mayron Cachina

Ok, dá uma estudada nessa procedure...
procedure TF_Par1.BitBtn7Click(Sender: TObject);
var Bmp: TBitMap; Jpg: TJPEGImage; Stm: TStream;
begin
OpenFoto.InitialDir:=´Diretório das fotos´;
if OpenFoto.Execute then
begin
Bmp:=TBitMap.Create;
Jpg:=TJPEGImage.Create;
try
//[ ] Captura o arquivo Jpg
Jpg.LoadFromFile(OpenFoto.FileName);
//[ ] Abre a tabela
if not (Dy1Par.DataSet.State in [dsEdit, dsInsert]) then Dy1Par.DataSet.Edit;
//[ ] Grava o diretório e o arquivo
Dy1Par.DataSet.FieldByName(´Par_DirSplash´).AsString:=OpenFoto.FileName;
//[ ] Transfere JPG para BMP
Bmp.Assign(jpg);
//[ ] Manda para o visualizador
ZDbImage1.Picture.Assign(bmp);
//[ ] Grava o que está no visualisador
Dy1Par.DataSet.Post;
//[ ] se não for JPG...
except on EInvalidGraphic do
begin
if not (Dy1Par.DataSet.State in [dsEdit, dsInsert]) then Dy1Par.DataSet.Edit;
Dy1Par.DataSet.FieldByName(´Par_DirSplash´).AsString:=OpenFoto.FileName;
//[ ] Captura o arquivo do diretório gravado na tabela
Bmp.LoadFromFile(OpenFoto.FileName);
//[ ] Manda a imagem BMP para o componente
ZDbImage1.Picture.Assign(Bmp);
//[ ] Grava a imagem do visualizador
Dy1Par.DataSet.Post;
end;
end;
//[ ] Libera os componentes criados
Bmp.Free;
Jpg.Free;
end
else
begin
if TBlobField(Dy1Par.DataSet.FieldByName(´Par_Splash´)).BlobSize > 0 then
if Confirma(´Limpar a cache ?´,´Figura´)=IdYes then
begin
if not (Dy1Par.DataSet.State in [dsEdit,dsInsert]) then Dy1Par.DataSet.Edit;
Dy1Par.DataSet.FieldByName(´Par_DirSplash´).AsString:=´´;
Qy1ParPar_Splash.AsVariant:=´´;
Dy1Par.DataSet.Post;
end;
end;
//[ ] LogoSplash é campo Blob para tela do Menú
//[ ] Checa se há imagem gravada
if TBlobField(Dy1Par.DataSet.FieldByName(´Par_Splash´)).BlobSize > 0 then
begin
try
//[ ] Cria os componentes
Bmp:=TBitMap.Create;
Stm:=TMemoryStream.Create;
//[ ] carrega a imagem na memória
TBlobField(Dy1Par.DataSet.FieldByName(´Par_Splash´)).SaveToStream(Stm);
//[ ] Transfere a imagem para o componente criado
Stm.Position:=0;
Bmp.LoadFromStream(Stm);
//[ ] Manda a foto para F_Menu
F_Menu.Image1.Picture.Graphic:=Bmp;
F_Menu.Image1.Update;
//[ ] Libera os componentes
FreeAndNil(Stm);
FreeAndNil(Bmp);
except on EInvalidGraphic do MessageDlg(´Algo deu errado !´, mtWarning, [mbOK], 1);
end;
end else
begin
F_Menu.Image1.Picture.Graphic:=F_Par1.Image1.Picture.Graphic;
F_Menu.Image1.Update;
end;
end;



Responder

Gostei + 0

22/10/2007

Mayron Cachina

Eita... foi mal!!!!!
[size=24:082acece03]POST ERRADO!!!![/size:082acece03]

O POST CORRETO:
Achei esse codigo na net... da uma olhada se serve...

uses
  Forms,
  Windows,
  Messages,
....
....
var
   hMutex:THandle;
   JanelaPrincipal:THandle;  //Variável que vai jogar a janela para frente se estiver escondida.
begin
   hMutex := 0;
   JanelaPrincipal:=FindWindow(´TForm1´,´Aqui o caption da janela principal do programa´);
try
   hMutex := CreateMutex(nil, true, ´Só Chama uma vez´);
   if GetLastError = ERROR_ALREADY_EXISTS then
      begin
         MessageBox(0,´O programa "coloque aqui o nome do seu programa" já se encontra em execução!´+#13+10+´Não é necessário que este programa esteja aberto duas vezes.´,´PROGRAMA JÁ ABERTO´,MB_IconExclamation);
         CloseHandle(hMutex);
      end
   else
     begin
        Application.Initialize;
        Application.CreateForm(...);//aqui depende de quantos forms estão sendo criados no seu programa.
        //coloque todas as criações aqui.
        Application.Run;
     end;
finally
   ReleaseMutex(hMutex);
   SetForegroundWindow(JanelaPrincipal); // Função que coloca o form principal na frente de tudo.
end;
end.



Responder

Gostei + 0

22/10/2007

Josinaldo

/// JanelaPrincipal:=FindWindow(´TForm1´,´Aqui o caption da janela principal do programa´);

Não deu certo, como não sei o nome do form deixei em branco o primeiro parametro, digitei o caption da janela e sempre retorna que está ativo, estando ou não.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar