Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Beatrix - TaskManager.cpp

TaskManager.cpp

Caricato da: Piero Tofy
Scarica il programma completo

  1. #include "TaskManager.h"
  2.  
  3. using namespace std;
  4.  
  5. void GetProcessList(LPVOID s) {
  6.         char* S = new char[2];
  7.         wsprintf(S,"%c\0",SEPARATOR);
  8.  
  9.         string ti = "";
  10.  
  11.         SOCKET socket = (SOCKET) s;
  12.     HANDLE         hProcessSnap;
  13.         PROCESSENTRY32* pe32 = new PROCESSENTRY32;
  14.         char*          pid = (char*) malloc(sizeof(long));
  15.         int            bRet;
  16.         unsigned int            numProcess = 0;  
  17.         string          Path;
  18.  
  19.     hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  20.        
  21.         if( hProcessSnap == INVALID_HANDLE_VALUE ) {
  22.                  SendTo(socket, "Failed!\n\0");
  23.                  return;
  24.         }
  25.  
  26.     pe32->dwSize = sizeof(PROCESSENTRY32);
  27.  
  28.         bRet = Process32First(hProcessSnap, pe32);
  29.  
  30.         if(!bRet) {
  31.                 CloseHandle(hProcessSnap);
  32.                 SendTo(socket, "Failed!\n\0");
  33.                 return;
  34.         }
  35.  
  36.         SendTo(socket, "InitTaskEnum\n\0");
  37.  
  38.         while(bRet) {
  39.                          numProcess++;
  40.                                  Path = pe32->szExeFile;
  41.                                  wsprintf(pid, "%d\0", pe32->th32ProcessID);
  42.                                  ti = Path + S + pid;
  43.                                  SendTo(socket, (char*)(ti + "\n\0").c_str());
  44.                                  bRet = Process32Next(hProcessSnap, pe32);     
  45.          }
  46.  
  47.         CloseHandle (hProcessSnap);
  48.         SendTo(socket, "EndTaskEnum\n\0");
  49. }
  50.  
  51. bool killProcess(int pid) {
  52.         HANDLE  hProcess = OpenProcess(PROCESS_ALL_ACCESS,TRUE, pid);
  53.  
  54.         if(hProcess == NULL)
  55.                 return false;
  56.  
  57.         TerminateProcess(hProcess,0);
  58.         CloseHandle(hProcess);
  59.         return true;
  60. }