我寫的進程處理類---方便新建,結束,和查看進程!

/*------------------------------------
Author:   Ted--Nefarian Zhu
Date:     2011/04/20 03:30
Version:  V1.00 All rights reserved !
Life sucks,but we all have to move on!
------------------------------------*/
#ifndef CPROCESS_H
#define CPROCESS_H
#include <windows.h>
#include <tlhelp32.h>

class CProcess
{
public:
    CProcess(); 
    ~CProcess();
    BOOL New(const char* pName); 
    BOOL Close(const char* pName);      
    BOOL Check(char buff[], int size);     
};


CProcess::CProcess(){}


CProcess::~CProcess(){}


BOOL CProcess::New(const char* pName)
{
    HINSTANCE hInstance = ShellExecute(NULL,
                          "open", pName, NULL, 
                          NULL, SW_SHOWNORMAL);
                          
    if ((int)hInstance <= 32) 
    {
        return FALSE;
    }
    else return  TRUE;   
}


BOOL CProcess::Close(const char* pName)
{
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(PROCESSENTRY32);
    
    HANDLE hsnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    BOOL bMore = Process32First(hsnapshot, &pe32);
    
    while(bMore)
    {            
         if(strcmp(pe32.szExeFile, pName) == 0)
         {
              HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 
                                            FALSE, pe32.th32ProcessID);
              BOOL bTest = TerminateProcess(hProcess, 0); 
              if (bTest) 
              {
                  CloseHandle(hProcess);
                  CloseHandle(hsnapshot);
                  return TRUE;
              }
              else return  FALSE;                                   
         }     
         bMore = Process32Next(hsnapshot, &pe32);   
    }
    
    return FALSE;
}


BOOL CProcess::Check(char buff[],int size)
{
    memset(buff, 0, size);
    PROCESSENTRY32 pe32;
    pe32.dwSize = sizeof(PROCESSENTRY32);
 
    HANDLE hsnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    BOOL bMore = Process32First(hsnapshot, &pe32);
    while(bMore)
    {      
         strcat(buff, pe32.szExeFile); 
         strcat(buff, "\n");         
         bMore = Process32Next(hsnapshot, &pe32);   
    }
    CloseHandle(hsnapshot);
    return TRUE;
}



#endif      /*----CPROCESS_H----*/


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值