#include "TaskManager.h"
using namespace std;
void GetProcessList(LPVOID s) {
char* S = new char[2];
wsprintf(S,"%c\0",SEPARATOR);
string ti = "";
SOCKET socket = (SOCKET) s;
HANDLE hProcessSnap;
PROCESSENTRY32* pe32 = new PROCESSENTRY32;
char* pid = (char*) malloc(sizeof(long));
int bRet;
unsigned int numProcess = 0;
string Path;
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if( hProcessSnap == INVALID_HANDLE_VALUE ) {
SendTo(socket, "Failed!\n\0");
return;
}
pe32->dwSize = sizeof(PROCESSENTRY32);
bRet = Process32First(hProcessSnap, pe32);
if(!bRet) {
CloseHandle(hProcessSnap);
SendTo(socket, "Failed!\n\0");
return;
}
SendTo(socket, "InitTaskEnum\n\0");
while(bRet) {
numProcess++;
Path = pe32->szExeFile;
wsprintf(pid, "%d\0", pe32->th32ProcessID);
ti = Path + S + pid;
SendTo(socket, (char*)(ti + "\n\0").c_str());
bRet = Process32Next(hProcessSnap, pe32);
}
CloseHandle (hProcessSnap);
SendTo(socket, "EndTaskEnum\n\0");
}
bool killProcess(int pid) {
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,TRUE, pid);
if(hProcess == NULL)
return false;
TerminateProcess(hProcess,0);
CloseHandle(hProcess);
return true;
}