Fórum Finalizar programa #594849
12/06/2018
0
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
Curtir tópico
+ 0Post mais votado
12/06/2018
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
Gostei + 1
Mais Posts
12/06/2018
Alberto
com a opcao de "parar" o sistema até que o programa
externo que foi executado termine, ai retorna ao sistema.
Gostei + 0
12/06/2018
Raimundo Pereira
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);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)