下面是具體**
總共分為兩個過程
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號,去得到此程序執行建立的視窗控制代碼,在網上搜了一段時間,得到了不少啟示,再結合自己的實際環境,整合出了以下三種方法,以下將針對每一...