Mútiplas janelas em instancia delphi

15/07/2019

0

Olá pessoal,

Quem já usou sandboxie já deve ter visto a função de abrir mútiplas janelas do mesmo .exe simultaneamente.
Preciso encontrar o processo ativo, se encontrado exibir a mensagem de "PROCESSO JÁ ESTÁ EM EXECUÇÃO" e permitir o programa abrir outra instância do mesmo.

function processExists(exeFileName: string): Boolean; 
var 
  ContinueLoop: BOOL;
  FSnapshotHandle: THandle; 
  FProcessEntry32: TProcessEntry32; 
begin 
  FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
  FProcessEntry32.dwSize := SizeOf(FProcessEntry32); 
  ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
  Result := False;
  while Integer(ContinueLoop) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
      UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
      UpperCase(ExeFileName))) then
    begin
      Result := True;
    end;
    ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
  end;
  CloseHandle(FSnapshotHandle);
  end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 if processExists(''wmplayer.exe'') then
    ShowMessage(''processo está sendo executado'')

//SE ESTIVER EM EXECUÇÃO PERMITIR ABRIR OUTRA JANELA E ASSIM POR DIANTE.


  else
    ShowMessage(''processo não está em execução'');

///AQUI AGUARDA O PROCESSO A SER EXECUTADO.


end;
Eduardo

Eduardo

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar