📄 objectkill.h
字号:
#include <string.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#pragma comment(lib,"kernel32.lib")
#include <WinBase.h>
//提权
BOOL UpdateProcessPrivilege(HANDLE hProcess);
//工作关联结束进程
LONG ObjectKill(LONG dwProcessID);
LONG ObjectKill(LONG dwProcessID)
{
UpdateProcessPrivilege(GetCurrentProcess());
BOOL res = FALSE;
HANDLE hjob = CreateJobObject(NULL,TEXT("KillProcess"));
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,0,dwProcessID);
if(hProcess == NULL)
{
printf("Open The Process Error!\n");
return 0;
}
AssignProcessToJobObject(hjob,hProcess);
res = TerminateJobObject(hjob,0);
if(res == FALSE)
printf("\nSorry, You cannot kill the process!");
else
printf("\nOK! Now The Process has been Killed!");
getch();
return 0;
}
//修改当前进程权限
BOOL UpdateProcessPrivilege(HANDLE hProcess)
// hProcess : 要提升的进程,目标进程
// lpPrivilegeName : 要提升到的特权,目标特权
// 返回值 : TRUE : 成功; FALSE : 失败
{
HANDLE hToken;
if ( OpenProcessToken( hProcess, TOKEN_ALL_ACCESS, &hToken ) ) {
LUID destLuid;
if ( LookupPrivilegeValue( NULL,SE_DEBUG_NAME, &destLuid ) ) {
TOKEN_PRIVILEGES TokenPrivileges;
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
TokenPrivileges.Privileges[0].Luid = destLuid;
//通知OS修改权限
int iResult;
if ( iResult = AdjustTokenPrivileges(hToken, FALSE, &TokenPrivileges,
0, NULL, NULL) )
{
return TRUE;
}
}
}
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -