例举所有进程

来源:互联网 发布:linux的mkdir命令 编辑:程序博客网 时间:2024/06/06 17:20



#include "stdafx.h"#include <windows.h>#include "tlhelp32.h"#include <iostream>    #include <locale>  #include <vector>using namespace std; BOOL TerminateProcessFromId(DWORD dwId){BOOL bRet = FALSE;// 打开目标进程,取得进程句柄HANDLE hProcess = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwId);if(hProcess != NULL){ // 终止进程bRet = ::TerminateProcess(hProcess, 0);}CloseHandle(hProcess);return bRet;}//例举所有进程,并显示名称和IDvoid main(){ vector<wstring> vecProcessNames;PROCESSENTRY32 pe32;HANDLE hTool;pe32.dwSize = sizeof(PROCESSENTRY32);hTool = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); //获得句柄if(hTool==INVALID_HANDLE_VALUE){MessageBox(NULL, _T("获得Toolhelp32Snapshot句柄失败"), _T("错误"), MB_OK);return;}if(Process32First(hTool, &pe32) == TRUE) //第一个参数就是获得的句柄{while(Process32Next(hTool,&pe32)){vecProcessNames.push_back(pe32.szExeFile);wcout.imbue(locale("chs"));              wcout<<pe32.szExeFile<<"  "<<pe32.th32ProcessID<<endl;  //printf("%s  \n",pe32.szExeFile);}}CloseHandle(hTool);//关闭句柄getchar();}


原创粉丝点击