GARANTIR DESCONTO

Fórum Finalizar programa #594849

12/06/2018

0

Olá!

Gostaria de saber como posso finalizar um processo, pela função "WinExec".
Para executar um programa, basta digitar "WinExec('notepad.exe', SW_SHOWNORMAL);".
Neste caso, eu quero finalizar o programa corrente/atual, por essa mesma função (WinExec), porém, não funciona muito bem.

Até onde sei, essa função seria como o Prompt de Comando, mas quando digito "WinExec('kill '+IntToStr(GetCurrentProcessId), SW_SHOWNORMAL);", ela não funciona.

Gostaria de saber uma maneira de fechar o programa, utilizando o pid (GetCurrentProcessId) do mesmo.
Vinicius

Vinicius

Responder

Post mais votado

12/06/2018

1.Declare em Uses Shellapi
Para saber o nome do exe basta ir no gerenciador de tarefas com o aplicativo em execução.

var Comando:string;

Comando:= 'taskkill -im notepad.exe /f /t';

Executa o comando como administrador
ShellExecute(Handle, 'runas', 'cmd.exe', PChar('/c'+Comando ), nil, 0);

Executa o comando normal
ShellExecute(Handle, 'open', 'cmd.exe', PChar('/c'+Comando ), nil, 0);

Raimundo Pereira

Raimundo Pereira
Responder

Gostei + 1

Mais Posts

12/06/2018

Alberto

Tenho um funcao que executa um programa externo
com a opcao de "parar" o sistema até que o programa
externo que foi executado termine, ai retorna ao sistema.
Responder

Gostei + 0

12/06/2018

Raimundo Pereira

Detalhe o Pid ou Idenfifi sempre muda ao abrir novo exe

abra o cmd e digiste tasklist
supomos que o pide do note pad seja 1835

Seu comando vai ser
Comando:= 'taskkill -im 1835 /f /t';

Executa o comando como administrador
ShellExecute(Handle, 'runas', 'cmd.exe', PChar('/c'+Comando ), nil, 0);

Executa o comando normal
ShellExecute(Handle, 'open', 'cmd.exe', PChar('/c'+Comando ), nil, 0);
Responder

Gostei + 0

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

Aceitar