1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
| /****************************************************************************************/
/* Contrôle l'existance des process WINWORD et PDFCreator et suppression s'ils existent */
/* La conversion d'un autre fichier sera impossible s'ils tournent toujours */
/****************************************************************************************/
int supp_process()
{
#define MAXNUM 10
#define MAXNOM 20
char espacenum[MAXNUM];
char espacenom[MAXNOM];
FILE *fichierps;
char *ps;
int no = 0;
int i = 0;
int j = 0;
int k = 0;
int m = 0;
int nbps = 0;
int lg = 0;
char *p1 = espacenom;
struct entry /* Paramètres des process à supprimer */
{
char num[10];
char nom[20];
};
struct entry process[200]; /* Nombre de process max à supprimer */
/* Lit tous les ps en cours et les copie dans liste_ps.txt */
if (system("AINTX\\ps.exe") == 0 && system("AINTX\\ps.exe > liste_ps.txt") == 0)
{
if ((fichierps = fopen("liste_ps.txt","r")) == NULL)
{
fputs("\nErreur d'ouverture du fichier liste_ps.txt\r",cr);
return 1;
}
/* Allocation mémoire du pointeur de lecture du fichier temporaire */
if ((ps = (char *)malloc(100)) == NULL)
{
fputs("\nIl y a un probleme d'allocation mémoire du pointeur ps",cr);
fclose(fichierps);
return 1;
}
/* Lit tous les process en cours */
while (fgets(ps,100,fichierps) != NULL && !feof(fichierps))
{
printf("\nps : %s - %d\r",ps,strlen(ps));
lg = strlen(ps);
for (i=0;i<=lg;i++)
{
if (strnicmp(ps," ",1) != 0)
{
switch (no)
{
case 0 :
/* Mémorisation du n° de process */
process[nbps].num[j] = *ps;
printf("\n%c\r",process[nbps].num[j]);
j++;break;
case 3 :
/* Mémorisation du nom de process */
process[nbps].nom[k] = *ps;
k++;break;
}
m = 0;
}
else
{
if(m == 0)
no++;
m = 1;
}
/* Avance d'un caractère */
*ps++;
}
/* Remplace le dernier caractère par \0 */
process[nbps].num[strlen(process[nbps].num)-1] = '\0';
process[nbps].nom[strlen(process[nbps].nom)-1] = '\0';
/* Passe au process suivant */
nbps++;
j = 0;
k = 0;
no = 0;
}
fclose(fichierps);
free(ps);
for(i=0;i<nbps;i++)
{
strcpy(p1,"IEXPLORE\0");
printf("\n%s - process[%d].nom : %d ** Process : %s - %d\r",process[i].nom,i,strlen(process[i].nom),process[i].num,strlen(process[i].num));
if(strcmp(process[i].nom,p1) == 0)
{
printf("\nprocess[%d].num : %s\r",i,process[i].num);
printf("\nprocess[%d].nom : %s\r",i,process[i].nom);
}
}
printf("\nNombre de process : %d\r",nbps);
fprintf(cr,"\nNombre de process : %d\r",nbps);
}
else
{
fputs("\nImpossible de lister les process.\r",cr);
return 1;
}
return 0;
} |
Partager