delphi杀进程的两种方式

第一种:比较简单,根据标题,找到窗口,再找到进程,杀死进程

[delphi] view plain copy

  1. procedure KillProgram(WindowTitle : string);
  2. const
  3. PROCESS_TERMINATE = $0001;
  4. var
  5. ProcessHandle : THandle;
  6. ProcessID: Integer;
  7. TheWindow : HWND;
  8. begin
  9. TheWindow := FindWindow(nil, PChar(WindowTitle));
  10. GetWindowThreadProcessID(TheWindow, @ProcessID);
  11. ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
  12. TerminateProcess(ProcessHandle,4);
  13. end;

第二种:复杂一点,不过可获取的信息更多,其他功能的时候可以参考一下

[delphi] view plain copy

  1. function KillTask(ExeFileName: string): integer;
  2. const
  3. PROCESS_TERMINATE=$0001;
  4. var
  5. ContinueLoop: BOOL;
  6. FSnapshotHandle: THandle;
  7. FProcessEntry32: TProcessEntry32;
  8. begin
  9. result := 0;
  10. FSnapshotHandle := CreateToolhelp32Snapshot
  11. (TH32CS_SNAPPROCESS, 0);
  12. FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
  13. ContinueLoop := Process32First(FSnapshotHandle,
  14. FProcessEntry32);
  15. while integer(ContinueLoop) <> 0 do
  16. begin
  17. if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
  18. UpperCase(ExeFileName))
  19. or (UpperCase(FProcessEntry32.szExeFile) =
  20. UpperCase(ExeFileName))) then
  21. Result := Integer(TerminateProcess(OpenProcess(
  22. PROCESS_TERMINATE, BOOL(0),
  23. FProcessEntry32.th32ProcessID), 0));
  24. ContinueLoop := Process32Next(FSnapshotHandle,
  25. FProcessEntry32);
  26. end;
  27. CloseHandle(FSnapshotHandle);
  28. end;

另,word也可以根据标题结束进程,word的标题的规则是application的title + "-" + window的title

http://blog.csdn.net/youthon/article/details/7247874

时间: 2024-10-14 12:54:05

delphi杀进程的两种方式的相关文章

AIR打开创建进程的两种方式

写在这里,方便查阅 NativeApplication.nativeApplication.autoExit = true;// 主窗体关闭也跟着关闭 Debug.trace('ToursLocalConnection :: appExePath = ' + appExePath);currFile = new File(appExePath);//currFile = new File("C:/Users/lenovo/Desktop/LZPC_Test/LZPC/uninstall.exe&

python全栈脱产第34天------开启进程的两种方式、join方法、进程对象其他相关的属性和方法、僵尸进程、孤儿进程、守护进程、互斥锁

一.开启进程的两种方式 方式一: from multiprocessing import Processimport time def task(name): print('%s is running' %name) time.sleep(3) print('%s is done' %name) # 在windows系统上,开启子进程的操作必须放到if __name__ == '__main__'的子代码中if __name__ == '__main__': p=Process(target=t

杀进程的三种方式

1. kill杀手 命令:(杀进程)kill  进程号 命令:(杀进程)kill  -9  进程号 说明:需要了解进程号,进程杀死后会有提示 2.killall(推荐使用) 命令:(杀进程)killall 进程名称 参数: -Z 只杀死拥有scontext 的进程-e 要求匹配进程名称-I 忽略小写-g 杀死进程组而不是进程-i 交互模式,杀死进程前先询问用户-l 列出所有的已知信号名称-q 不输出警告信息-s 发送指定的信号-v 报告信号是否成功发送-w 等待进程死亡--help 显示帮助信息

multiprocessing多进程(31-04)创建进程的两种方式

一个进程可以寄生多个线程. CPU核数与进程个数是统一的, 若进程多于核数,那么只有等待上一进程执行完才能被执行. ------------------第一种进程创建方式------------------------ from multiprocessing import Processimport time def A(name): time.sleep(1) print('haello', name, time.ctime()) if __name__ == "__main__"

Delphi 调用Dll的两种方式

unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender

python创建进程的两种方式

1.方式1 import time import multiprocessing def task(arg): time.sleep(2) print(arg) def run(): # 进程1 p1 = multiprocessing.Process(target=task, args=(1,)) p1.name = 'pp1' p1.start() # 进程2 p2 = multiprocessing.Process(target=task, args=(2,)) p2.name = 'pp

1-2 开启进程的两种方式

一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程. Python提供了multiprocessing. multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似.multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,>提供了

开启进程的两种方式:类、函数

调用: 函数: p1=Process(target=piao,kwargs={'name':'alex',}) #target=函数名,kwargs或args传递函数参数 类: p1=Piao('alex')p1.start() #先实例化,在用start方法

内存分配原理 -进程分配内存的两种方式,分别有系统调用完成brk() 和mmap()(不设计共享内存)

如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误.           这两个数值表示一个进程自启动以来所发生的缺页中断的次数. 发成缺页中断后,执行了那些操作? 当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作: 1.检查要访问的虚拟地址是否合法 2.查找/分配一个物理页 3.填充物理页内容(读取磁盘,或者直接置0