Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Verificar se um programa especifico está aberto


robinhocne

Pergunta

Boa noite Pessoal,

Tenho um programinha chamado DOSPRINT ele serve para emular a porta USB para LPT1, é um programinha de terceiro, ai eu queria no delphi verificar se esse programa está executando, pois como ele fica do lado do relogio e ainda oculto, eu queria só saber se ele esta executando se não tiver ai pelo delphi eu mandar abrir ele.

alguém pode me ajudar ?

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Declare a Uses: Tlhelp32

Implemente a função:

function Tform1.ProcessoExiste(ExeFileName: string): boolean;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32{declarar Uses Tlhelp32};
begin
result := false;

FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);

while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then
begin
Result := true;
exit;
end;
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
Depois faça a checagem:
if ProcessoExiste('MeuPrograma.exe') then
ShowMessage('Uhull to aberto')
else
WinExec (pChar('MeuPrograma.exe'), SW_MAXIMIZE);

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Declare a Uses: Tlhelp32

Implemente a função:

function Tform1.ProcessoExiste(ExeFileName: string): boolean;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32{declarar Uses Tlhelp32};
begin
result := false;

FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);

while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then
begin
Result := true;
exit;
end;
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
Depois faça a checagem:
if ProcessoExiste('MeuPrograma.exe') then
ShowMessage('Uhull to aberto')
else
WinExec (pChar('MeuPrograma.exe'), SW_MAXIMIZE);

Abraços

Ok, otimo resolvido, Obrigado Douglas

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...