用createtoolhelp32snapshot/process32first/process32next api列舉系統程序
在很多情況下需要對系統的程序進行操作,方法有很多種但最常用的是
createtoolhelp32snapshot/process32first/process32next 一系列api使現結束程序使用
terminateprocess使現
下面的函式可以使現對程序的列舉:
int processlist()
bool bmore=::process32first(hprocesssnap,&pe32);
printf("%20s/t%10s/n","程序名","pid");
printf("***********************************=/n");
while(bmore)
::closehandle(hprocesssnap);
printf("***********************************=/n");
printf("/n當前系統程序數為:%d/n",count);
return 0;
}結束程序可以使用下面的函式:(使現其中dwid為想要結束的程序id可通過列程序的函式得到)
int terminateprocessfromid(dword dwid)
::closehandle(hprocess);
if(bret)
printf("%d 程序結束成功....../n/n/n/n",dwid);
else
printf("%d 程序結束失敗....../n/n/n/n",dwid);
return 0;
}與程序相關的操作通常還要提公升許可權,由關提公升許可權可以看偶的另一篇筆記《提公升程序許可權**.》
由於**相對比較簡單,所以就沒有更多的文字說明,關鍵的函式加了注釋,其實使用時直接呼叫就ok了.
獲取系統所有程序
delphi的tlhelp32單元封裝了關於程序執行緒,堆,模組的函式和結構。寫 之前先對幾個函式進行一下說明。createtoolhelp32snapshot 函式為指定的程序 程序使用的堆 heap 模組 module 執行緒 thread 建立乙個快照 snapshot 也就是各個程序的這些相...
得到指定程序所有視窗。顯示 影藏 置頂。
這裡使用乙個外掛程式測試,因為外掛程式沒有做功能限制的處理 只是做了 視窗影藏。全域性變數 hwnd hwnd 100 int number 0 dword tpid 0 區域性變數 char username 1028 先找到程序id 1 hwnd selectpor 2 12 bool isok...
得到系統程序和結束某個指定的程序
看到這篇文章,關閉指定的ie例項 自己想了另乙個辦法來作 先修改登錄檔 hkey local machine system currentcontrolset service perfproc performance 下的 disable performance counters 的值改為0 得到系...