Je suis en train de porter une application : je la passe de windows 2000 à windows XP. Auparavant, j’utilisais kill.exe pour tuer un processus et cela fonctionnait sans problème.
Maintenant lorsque j’utilise kill.exe en ligne de commande, il tue bien le processus mais j’ai une erreur en plus :
Le message Microsoft process kill utility a rencontré un problème et doit fermer … (vive Microsoft !)
Sur ma ligne de commande j’ai la ligne suivante : “Process (0) - ‘’ could not be killed” (ligne non présente auparavant).
Auriez-vous une idée qui expliquerait pourquoi cela part en erreur sur certains clients windows XP et pas d’autres ? (le kill.exe utilisé est le même sur tous les clients aussi bien sur Windows XP que windows 2000).
Je te prierai de mettre le langage informatique dans le titre, tel que requis par la charte du forum programmation - pour une meilleure compréhension les uns des autres.
Voici le code C que j’utilise pour tuer un process sous Windows (testé sous WindowsXP):
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
int DLLEXPORT _stdcall KillProcess(char ProcessToKill[256])
{
PROCESSENTRY32 proc;
DWORD process = 0;
HANDLE PID = NULL;
HANDLE sys = NULL;
// CreateToolhelp32Snapshot permet de dresser une liste de tous les process
if (!(sys = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)))
return -1;
// Ouverture du premier process
ZeroMemory(&proc, sizeof(proc));
proc.dwSize = sizeof(proc);
if (!Process32First(sys, &proc))
return -2;
// on cherche le process 'ProcessToKill'
do
{
if (lstrcmp(proc.szExeFile, ProcessToKill) == 0)
{
process = proc.th32ProcessID;
break;
}
}
while (Process32Next(sys, &proc));
CloseHandle(sys);
// Le process à tuer n'a pas été trouvé
if (!process)
return -3;
// ouverture du process 'ProcessToKill'
if (!(PID = OpenProcess(PROCESS_TERMINATE, FALSE, process)))
return -4;
// terminaison du process 'ProcessToKill'
TerminateProcess(PID, 0);
CloseHandle(PID);
// fin du programme
return 0;
}
Je l’ai compilé sous forme de dll (dispo sur mon site perso: http://www.infotech.free.fr/dev/) mais devrait être adaptable en exécutable :super: