大家好,又见面了,我是你们的朋友全栈君。
#include<stdio.h>
#include <WINDOWS.H>
#include<Tlhelp32.h>
BOOL KillProcess(DWORD dwProcessId)
{
HANDLE hProcess= OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessId);
BOOL bKill= TerminateProcess(hProcess,0);
if(bKill==0)
{
return FALSE;
}
}
bool EnumProcess()
{
//CreateToolhelp32Snapshot
//Process32Next
//Process32First
PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(PROCESSENTRY32);
HANDLE hSnapshot= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(INVALID_HANDLE_VALUE==hSnapshot)
return false;
if(Process32First(hSnapshot,&pe32))
{
do
{
printf("ID:%d,Name:%s\n",pe32.th32ProcessID,pe32.szExeFile);
} while (Process32Next(hSnapshot,&pe32));
}
return false;
}
bool EnablePri()
{
//OpenProcessToken
//LookupPrivilegeValue
//AdjustTokenPrivileges()
HANDLE TokenHandle;
PLUID lpLuid;
TOKEN_PRIVILEGES tkp;
tkp.PrivilegeCount=1;
BOOL bOpen= OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&TokenHandle);
if(!bOpen)
return false;
BOOL bLook= LookupPrivilegeValue(NULL,SE_SECURITY_NAME,&tkp.Privileges[0].Luid);
if(!bLook)
return false;
BOOL bAdjust= AdjustTokenPrivileges(TokenHandle,false,&tkp,sizeof(tkp),NULL,NULL);
return(GetLastError()==ERROR_SUCCESS);
}
void main()
{
if(!EnablePri())
{printf("EnablePri fail\n");
return;
}
if(EnumProcess())
{ printf("EnumProcess fail\n");
getchar();
return;
}
printf("InPut Process PID:");
DWORD dwProcessId;
scanf("%d",&dwProcessId);
KillProcess(dwProcessId);
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126475.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...