码迷,mamicode.com
首页 > 系统相关 > 详细

进程查杀

时间:2017-05-12 00:11:44      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:define   open   pid   etc   adjust   根据   back   一段   bool   

    工作中有时候会用到根据进程的PID杀进程,或是根据进程名杀进程的情形。

    网上找到一段比较有参考价值的代码。

// Process.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <stdio.h>  
#include <windows.h>  
#include <winbase.h>  
#include <tlhelp32.h>  
#pragma comment(lib,"kernel32.lib")  
#pragma comment(lib,"advapi32.lib")  
void EnableDebugPriv() {  
    HANDLE hToken;  
    TOKEN_PRIVILEGES tkp;  
    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);  
    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);  
    tkp.PrivilegeCount = 1;  
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;  
    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, NULL);  
    CloseHandle(hToken);  
}  
int pskill(int id)   //根据进程ID杀进程  
{  
    HANDLE hProcess=NULL;  
    //打开目标进程  
    hProcess=OpenProcess(PROCESS_TERMINATE,FALSE,id);  
    if (hProcess==NULL) {  
        wprintf(L"\nOpen Process fAiled:%d\n",GetLastError());  
        return -1;  
    }  
    //结束目标进程  
    DWORD ret=TerminateProcess(hProcess,0);  
    if(ret==0) {  
        wprintf(L"%d",GetLastError());  
    }  
    return -1;  
}  
int main() {  
    //进程列举  
    HANDLE hSnApshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  
    if (hSnApshot != INVALID_HANDLE_VALUE) {  
        PROCESSENTRY32 te = { sizeof(te) };  
        BOOL f0k = Process32First(hSnApshot, &te);  
        for (; f0k; f0k = Process32Next(hSnApshot, &te)) {  
            wprintf(L"Pid: %d %s\n", te.th32ProcessID, te.szExeFile);  
        }  
    }  
    CloseHandle(hSnApshot);  
    //杀进程  
    wprintf(L"the process‘s id which you want to kill:");  
    int id = 0;  
    wscanf(L"%d", &id);  
    EnableDebugPriv(); //提升权限  
    pskill(id);  
    return 0;  
}

工程源码:http://download.csdn.net/download/qq_33892166/9840076

进程查杀

标签:define   open   pid   etc   adjust   根据   back   一段   bool   

原文地址:http://www.cnblogs.com/betterwgo/p/6843152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!