Terminer un processus

Contenu du snippet

Ce code montre comment trouver le processus d'une apllication, et le fermer.

Source / Exemple :


#include "stdafx.h"
#include <tlhelp32.h>  //fonction CreateToolhelp32Snapshot
#include <string.h>    //fonction strstr

bool ShellExit(char *ExeName);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	if ( ShellExit("IEXPLORE") == true )
		MessageBox(NULL,"Programme fermé",NULL,NULL);
	else
		MessageBox(NULL, "Le programme n'a pas pu être fermé: processus non trouvé", NULL,NULL);
}

bool ShellExit(char *ExeName)
{
	//Recherche du processus:
	HANDLE hSnapShot;
	PROCESSENTRY32 uProcess;
	bool r;
	short PID = 0; //variable qui va stocker l'ID du processus de l'application que l'on désire fermer.

	hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
	uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);

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

		r = Process32Next(hSnapShot, &uProcess);
	} while ( r );

	CloseHandle(hSnapShot);

	if ( PID == 0)
		return false;

	//Fermeture du processus:
	HANDLE hTemp;

	hTemp = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD) PID);
	TerminateProcess(hTemp,0);

	return true;
//Attention: le nom de l'éxécutable est écrit ou tout en majuscule, ou comme il est orthografier sur le disque dur. Il faut parfois faire plusieurs text pour un seul nom d'executable.
}

Conclusion :


Le code à été modifié. Il contient maintenant une fonction et un exemple d'utilisation. Pour utiliser la fonction ShellExit, il suffit de lui communiquer le nom de l'exe. par exemple, pour fermer Internet Explorer, on lui communique IEXPLORE.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (zeratul67)