通過程序控制代碼關閉某個程式的程序

2021-08-27 09:53:18 字數 2045 閱讀 4203

下面是具體**

總共分為兩個過程

enumproctree 主要用來列舉控制代碼樹

killproc 關閉某個程式的程序

procedure enumproctree(const pid: dword;

out pid_tree: tpidtree);

procedure listtree(rootpid: dword);

varhp_root: thandle;

found: boolean;

pn: tprocessentry32;

hsnap: thandle;

begin

hp_root := openprocess(process_all_access, false, rootpid);

if hp_root <> 0 then

begin

closehandle(hp_root);

setlength(pid_tree, length(pid_tree) + 1);

pid_tree[length(pid_tree) - 1] := rootpid;

pn.dwsize := sizeof(tprocessentry32);

found := process32first(hsnap, pn);

while found do

begin

if rootpid = pn.th32parentprocessid then

begin

listtree(pn.th32processid);

end;

found := process32next(hsnap, pn);

end;

closehandle(hsnap);

end;

end;

begin

setlength(pid_tree, 0);

listtree(pid);

end;

killproc過程的引數:

pid需要結束的控制代碼id

killchild是否結束子程序

如果killchild是true,那麼首先列舉所有的子控制代碼,然後一次性都關閉

procedure killproc(pid: dword; killchild: boolean = true; const exitcode: cardinal = 0);

vari: integer;

hproc: thandle;

pid_tree: tpidtree;

begin

if killchild then

begin

enumproctree(pid, pid_tree);

for i := high(pid_tree) downto low(pid_tree) do

begin

if (pid_tree[i] <> 0) then

begin

hproc := openprocess(process_all_access, false, pid_tree[i]);

if hproc <> 0 then

begin

terminateprocess(hproc, exitcode);

closehandle(hproc);

end;

end;

end;

endelse

begin

hproc := openprocess(process_all_access, false, pid);

if hproc <> 0 then

begin

terminateprocess(hproc, exitcode);

closehandle(hproc);

end;

end;

end;

使用**

killproc(lpprocessinformation.dwprocessid, true, result);

lpprocessinformation.dwprocessid 程序的控制代碼id

true結束子程序

mac關閉占用某個埠的程序

在啟動專案的時候有時候會提示埠被占用,但是怎麼都找不到那個關閉程序的地方,可以直接通過命令列關閉這個程序 比如要關閉 8000埠的程序 1.查詢埠程序 lsof i 8000 會把所有的占用8000埠的程序都列出來,找到需要關閉的那個程序,比如下面這個 python 85877 yhjin 4u i...

視窗控制代碼,程序ID,程序控制代碼,視窗與程序之間的關係

在windows或linux等作業系統下視窗控制代碼對應著每個視窗的鑰匙,例如,你要對某乙個視窗進行操作,你必須知道你要操作哪乙個視窗,這裡就拿windows做舉例,windows下幾乎會建立許許多多個視窗,但是我們怎麼知道我們操作的是哪個視窗?答 就是視窗控制代碼,每個視窗在被建立出來之後就會被賦...

通過程序號ID獲得視窗的控制代碼

2012年 09月 05日 通過程序號的id獲得視窗的控制代碼 最近幾天,工作的需要,打算實現將別人編譯好的exe程式,通過自己的程式去呼叫,然後根據程式中得到的id號,去得到此程序執行建立的視窗控制代碼,在網上搜了一段時間,得到了不少啟示,再結合自己的實際環境,整合出了以下三種方法,以下將針對每一...