zoukankan      html  css  js  c++  java
  • delphi杀进程的两种方式

    delphi杀进程的两种方式

    uint

    unit Tlhelp32;

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

    procedure KillProgram(WindowTitle : string);
    const
    PROCESS_TERMINATE = $0001;
    var
    ProcessHandle : THandle;
    ProcessID: Integer;
    TheWindow : HWND;
    begin
    TheWindow := FindWindow(nil, PChar(WindowTitle));
    GetWindowThreadProcessID(TheWindow, @ProcessID);
    ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
    TerminateProcess(ProcessHandle,4);
    end;

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

    function KillTask(ExeFileName: string): integer;
    const
    PROCESS_TERMINATE=$0001;
    var
    ContinueLoop: BOOL;
    FSnapshotHandle: THandle;
    FProcessEntry32: TProcessEntry32;
    begin
    result := 0;

    FSnapshotHandle := CreateToolhelp32Snapshot
    (TH32CS_SNAPPROCESS, 0);
    FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
    ContinueLoop := Process32First(FSnapshotHandle,
    FProcessEntry32);

    while integer(ContinueLoop) <> 0 do
    begin
    if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
    UpperCase(ExeFileName))
    or (UpperCase(FProcessEntry32.szExeFile) =
    UpperCase(ExeFileName))) then
    Result := Integer(TerminateProcess(OpenProcess(
    PROCESS_TERMINATE, BOOL(0),
    FProcessEntry32.th32ProcessID), 0));
    ContinueLoop := Process32Next(FSnapshotHandle,
    FProcessEntry32);
    end;

    CloseHandle(FSnapshotHandle);
    end;

  • 相关阅读:
    C语言学习第八章
    C语言学习第七章
    C语言学习第六章
    C语言学习第五章
    ssh的bug
    Oracel 用户管理
    初识Kettle
    IDEA使用MAVEN时自动创建骨架卡的设置
    2017/6/12 JSON
    DDL,DML,DQL
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5728521.html
Copyright © 2011-2022 走看看