例举所有进程

xiaoxiao2021-02-28  81

#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; } //例举所有进程,并显示名称和ID void 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(); }

转载请注明原文地址: https://www.6miu.com/read-75373.html

最新回复(0)