Bonjour,

J'ai réalisé un programme qui exécute un exécutable externe par la biais de la fonction "systeme()".

Le soucie est que certaines fois, ce programme externe se fige et ne fais plus rien. Ce programme externe s'appelle "Xcmd.exe" (c'est un remote controle en ligne de commande). J'aimerai savoir comment faire pour mettre une genre de temporisation à la commande système qui lui dirai si celui ci n'a pas fini ca tâche après quelques seconde, passé à la suite...

Voici ma fonction qui utilise Xcmd.exe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <string.h> 
#define TAILLE_COMMANDE 512
 
int scan(const char *ip)
{
    char commande [TAILLE_COMMANDE];
 
    // On créer notre futur commande ms_dos (Xcmd)  
    strcpy(commande, "xCmd.exe \\\\");
    strcat(commande, ip);
    strcat(commande, " /NOWAIT /HIGH /D:%SystemRoot%\\temp "); // Don't wait for remote process to terminate, High priority class, Set working directory
    strcat(commande, "\""); // Pour prendre en compte toute la commande à executer dans Xcmd
    strcat(commande, "MD temp & CD temp &"); // Création d'un dossier et aller dedans
    strcat(commande, " START \\\\Akffs10\\UNIX\\AFN\\install_OCS_inventory\\ocs-ng\\OCSInventory.exe /SERVER:AKF1118.***.*****.int"); // Executer l'application à distance
    strcat(commande, "\""); // Pour prendre en compte toute la commande à executer dans Xcmd
    int result_xcmd=system(commande); // execution de la commande
 
    system("echo.");
 
    // Test si toutes les manipulations se sont bien déroulés
    if (result_xcmd==0)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}