DELPHI根據程序名強制關閉程序

2021-04-14 03:04:40 字數 1544 閱讀 2465

原理:

迴圈所有程序,取得相同名的程序,得到程序控制代碼,關閉

killtask('cmd.exe');

//結束程序

function tform1.killtask(exefilename: string): integer;

const

process_terminate = $0001;

varcontinueloop: bool;

fsnapshothandle: thandle;

fprocessentry32: tprocessentry32;

begin

result := 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;

//提權

function tform1.enableprivilege(htoken: cardinal; privname: string; benable:

boolean): boolean;

vartp: token_privileges;

dummy: cardinal;

begin

tp.privilegecount := 1;

lookupprivilegevalue(nil, pchar(privname), tp.privileges[0].luid);

if benable then

tp.privileges[0].attributes := se_privilege_enabled

else

tp.privileges[0].attributes := 0;

adjusttokenprivileges(htoken, false, tp, sizeof(tp), nil, dummy);

result := getlasterror = error_success;

end;  

根據包名關閉其他應用或者程序

根據包名關閉乙個後台應用,正處於前台的應用關不了,帶通知欄的服務也屬於前台程序,關閉不了 需要許可權kill background processes param context param packagename try catch exception ex 根據包名關閉應用,已被棄用,聽說原始碼...

根據程序名殺死程序 kill程序名

前兩天乙個老師給我出了乙個linux操作上的問題,現在知道程序名怎樣殺死這個程序。或許很多人都會和我一樣說用 pkill 程序名 或是 killall 程序名 的確這個兩個命令都能做到這些,而且我們平時一般知道程序名需要殺死程序的時候也都是用的這兩個命令。可是他叫我用kill 命令來完成這個一操作。...

如何強制關閉所有程序方法

在很多情況下,c 程式在應用程式完成後,因為某些執行緒任務沒完成,所以使用者看到程式視窗已經關了,但開啟任務管理器會發現程序還在,還占用著資源.有時是因為程式本身沒去處理關閉執行緒而引起的,但也有很多情況是種種原因導至程式中的執行緒任務長時間卡住,甚至無法結束,在網路程式中更為嚴重.如遇到這類情況,...