Delphi根据进程PID等待进程结束或者结束进程
2017-10-25 14:57
281 查看
本文描述的是已知窗体标题,先获取某个程序的进程PID(即在任务管理器中的 进程ID),实现等待进程结束或者直接杀掉进程的方法。因为网络上直接结束进程的方法很多,本文不做深究,主要是等待进程结束。
使用以下代码即可实现:
procedure Execute;
var
dwProcessID: DWORD;
FormH,hApp: THandle;
begin
inherited;
//找到窗口句柄
formh := FindWindow(nil, PWideChar('标题'));
if FormH = 0 then
Exit;
//根据窗口句柄找到PID
GetWindowThreadProcessId(formH, @dwProcessID); //通过活动窗口句柄获取对应的进程Id
//打开进程,获取权限
hApp:= OpenProcess(PROCESS_VM_OPERATION or Winapi.Windows.SYNCHRONIZE,FALSE,dwProcessID );
//等待进程结束
WaitForSingleObject(hApp,INFINITE);
end;
使用以下代码即可实现:
procedure Execute;
var
dwProcessID: DWORD;
FormH,hApp: THandle;
begin
inherited;
//找到窗口句柄
formh := FindWindow(nil, PWideChar('标题'));
if FormH = 0 then
Exit;
//根据窗口句柄找到PID
GetWindowThreadProcessId(formH, @dwProcessID); //通过活动窗口句柄获取对应的进程Id
//打开进程,获取权限
hApp:= OpenProcess(PROCESS_VM_OPERATION or Winapi.Windows.SYNCHRONIZE,FALSE,dwProcessID );
//等待进程结束
WaitForSingleObject(hApp,INFINITE);
end;
相关文章推荐
- delphi 如何等待进程树的结束
- delphi根据进程PID获取程序所在路径的函数(用OpenProcess取得句柄,用GetModuleFileNameEx取得程序名)
- Delphi写的等待进程运行结束函数
- delphi根据进程PID获取程序所在路径的函数
- Windows中根据端口号或PID查看进程、结束进程方法
- delphi 如何等待进程树的结束
- 根据进程名称获取进程pid,结束进程,执行exe文件
- 根据端口号查找相应PID,从而在任务管理器中结束或查看相应进程
- 我在delphi中用shellExecute启动了一个程序(ftp);然后想做一个等待,只到ftp进程结束,再继续下面的操作,请问如何监控这个进程是否已结束?
- 根据PID获取进程名 或者 根据进程名获取PID
- Delphi写的等待进程运行结束函数
- linux 下根据进程名字获取进程的进程号PID,类似pidof,C函数
- 等待进程结束
- 根据进程名称或者服务名称用WMI获取执行路径和参数
- WaitForSingleObject 示例之一: 等待另一个进程的结束
- Delphi结束指定进程EndProcess
- C程序完成:父进程创建一个子进程,父进程对子进程设置一个报警信号,然后父进程等待子进程的结束,如果此时报警信号先到,就终止子进程。
- Linux系统编程——进程的控制:结束进程、等待进程结束
- 进程控制:结束进程、等待进程结束、避免僵尸进程
- 函数: waitpid - 等待子进程中断或结束