Finalizar programa
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.
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
Curtidas 0
Melhor post
Raimundo Pereira
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);
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);
GOSTEI 1
Mais Respostas
Alberto
12/06/2018
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.
com a opcao de "parar" o sistema até que o programa
externo que foi executado termine, ai retorna ao sistema.
GOSTEI 0
Raimundo Pereira
12/06/2018
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);
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