Advertisement
vytenis555

[C++] Process List - Console

Apr 3rd, 2013
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <Windows.h>
  2. #include <iostream>
  3. #include <Tlhelp32.h>
  4. #include <vector>
  5. #include <string>
  6.  
  7. #pragma warning (disable: 4018)
  8.  
  9. using namespace std;
  10.  
  11. struct _PROCESS_INFORMATION_STRUCT
  12. {
  13.     std::string strProcessName;
  14.     DWORD dwProcessID;
  15. };
  16.  
  17. vector<_PROCESS_INFORMATION_STRUCT> vProcessinfo;
  18.  
  19. bool ProcessToVector()
  20. {
  21.     PROCESSENTRY32 pEntry;
  22.     HANDLE pSnap;
  23.    
  24.     pSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  25.  
  26.     if (pSnap == INVALID_HANDLE_VALUE)
  27.         return false;
  28.  
  29.     pEntry.dwSize = sizeof(PROCESSENTRY32);
  30.  
  31.     if (!Process32First(pSnap, &pEntry))
  32.         return false;
  33.    
  34.     while (Process32Next(pSnap, &pEntry))
  35.     {
  36.         _PROCESS_INFORMATION_STRUCT ProcessInfo;
  37.        
  38.         std::wstring wstrTemp   = std::wstring(pEntry.szExeFile);
  39.         std::string strTemp     = std::string(wstrTemp.begin(), wstrTemp.end());
  40.        
  41.         ProcessInfo.strProcessName  = strTemp;
  42.         ProcessInfo.dwProcessID     = pEntry.th32ProcessID;
  43.  
  44.         vProcessinfo.push_back(ProcessInfo);
  45.     }
  46.  
  47.     CloseHandle(pSnap);
  48.  
  49.     return true;
  50. }
  51.  
  52. int main()
  53. {
  54.     SetConsoleTitle(L"Process List");
  55.  
  56.     ProcessToVector();
  57.  
  58.     for (int i = 0; i < vProcessinfo.size(); i++)
  59.         cout << "[" << vProcessinfo[i].dwProcessID << "] " << vProcessinfo[i].strProcessName << endl;
  60.  
  61.     cout << endl;
  62.     system("pause");
  63.     return EXIT_SUCCESS;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement