Aider11

mohamed -  
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai des erreurs dans process.cpp
#include "stdafx.h"
#include "process.h"

/*Fonction qui lance un processus
elle prend en argument le chemin ou se trouve le fichier executable
renvoie si le processus a ete lancer avec succes, sinon 0*/
int Processus::RunProcess(char *NameExe)
{


ZeroMemory(&Si, sizeof(Si));
Si.cb = sizeof(Si);
ZeroMemory(&Pi, sizeof(Pi));

if (!CreateProcess(NULL, NameExe, NULL, NULL, FALSE, 0, NULL, NULL, &Si, &Pi))
{
return 0;
}

return 1;

}

/*fonction qui arrete un processus d'apres son nom
elle prend en argument le nom du processus(ex: notepad.exe)
renvoie 1 si tout c'est bien passer
*/
int Processus::KillProcessByName(char *NameProcess)
{


SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
Process.dwSize = (DWORD) sizeof(PROCESSENTRY32);

I = Process32First(SnapShot, &Process);
do // Cette boucle énnumère tout les processus
{
if (strstr(Process.szExeFile, NameProcess))//on cherche le nom de notre application dans le chemin d'accès de l'éxécutable du processus.
PID = (int)Process.th32ProcessID;

I = Process32Next(SnapShot, &Process);
} while (I);

CloseHandle(SnapShot);

if (PID == 0)
return 0;

return Processus::KillProcessByPID(PID);

}


/*fonction qui arrete un processus d'apres son identifiant(visible dans le gestionaire des tache dans la colonne PID)
elle prend en argument le PID du processus
renvoie si tout c'est bien passer sinon 0*/
int Processus::KillProcessByPID(int PID)
{
UpPrivilege();


HProcess = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD)PID);
if (TerminateProcess(HProcess, 0) != 0)
{

return 1;
}
return 0;

}

/* fonction qui verifie si un processus est deja executer sur le systeme
elle prend en argument le nom du processus a verifier
renvoie 1 si le processus est deja executer sinon 0;*/
int Processus::CheckProcessAlreadyRun(char *NameProcess)
{
PROCESSENTRY32 Pe = { sizeof(PROCESSENTRY32) };
SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (Process32First(SnapShot, &Pe))
{
do
{
if (Pe.th32ProcessID == 0 || Pe.th32ParentProcessID == 0)
continue;

if (strcmp(Pe.szExeFile, NameProcess) == 0)
{
return 1;
}
} while (Process32Next(SnapShot, &Pe));
CloseHandle(SnapShot);
return 0;
}

CloseHandle(SnapShot);
return -1;
}


/*
Fonction qui liste les processus executer sur le pc
elle prend en argument un "tableau a doubleau entree" ou sont stoquer les nom des processus ainsi que leurs PID respectif
renvoie 1 si cela a reussi sinon 0 ou -1 suivant l'erreur*/
int Processus::ListingProcess(char List[100][100])
{


PROCESSENTRY32 Pe = { sizeof(PROCESSENTRY32) };
HANDLE SnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (Process32First(SnapShot, &Pe))
{
do
{
List[J][0] = '\0';
if (Pe.th32ProcessID == 0 || Pe.th32ParentProcessID == 0)
continue;
sprintf(ID, "%ld", Pe.th32ProcessID);

strcat(List[J], Pe.szExeFile);
strcat(List[J], "\t");
strcat(List[J], ID);
J++;


} while (Process32Next(SnapShot, &Pe));
List[J][0] = '\0';
strcat(List[J], "EOL");//j'ai placer ce EOL(End of List) pour pouvoir plus facilement savoir quand es que l'on a ateind la fin de la liste, par exemple lors d'une lecture de la liste
CloseHandle(SnapShot);

return 1;
}

CloseHandle(SnapShot);
return -1;


return 0;
}

/*fonction qui sert a augmenter le niveau de privilege de notre programme au niveau DEBUG
notamment necessaire pour pouvoir arreter un processus systeme*/
void Processus::UpPrivilege()
{


handle1 = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
OpenProcessToken(handle1, TOKEN_ALL_ACCESS, &handle2);
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Luid);
privilege.PrivilegeCount = 1;
privilege.Privileges[0].Luid = Luid;
privilege.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(handle2, FALSE, &privilege, sizeof(privilege), NULL, NULL);
CloseHandle(handle2);
CloseHandle(handle1);
}

merci en avance

2 réponses

sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
il est préférable que tu mettes ton code dans des balises pour quand puisse bien lire ton code. Personnellement j'ai décroché à lire à 7ème ligne de lecture de ton code
0
benmohamedali11 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
merci pou m'aider
0
sambia39 Messages postés 610 Date d'inscription   Statut Membre Dernière intervention   49
 
??
0