Commande en console windows invisible

Note utilisateur:  / 12
MauvaisTrès bien 

Lancer une commande de console windows : cWDDos devient PRJ_CLA_Console.

Initié par DrCharly93 pour WDForge.org, il a été successivement amélioré par :

Commande en console windows

De retour sur WDForge, PRJ_CLA_Console est proposé en WinDev 20 et ses nouveautés :

WinDev 14 a vu arrivé un nouveau type de variable : procédure

Outre la foncitonnalité du projet, nous illustrons avec cette évolution l'usage du type "procédure" en programmation orientée objet.

Il est donc possible de créer un membre de type procédure à une classe.

Si le membre n'est pas affecté, il prend la valeur null. Sinon, il se transforme en un pointeur vers la procédure.

Nous appelons cette possibilité l'abonnement de procédure.

Si le membre est renseigné, on peut appeler depuis une méthode de la classe, une procédure fournie... et donc hors de portée.


Il devient alors possible de "personnaliser" des comportements d'objets selon leur environnement.

Dans le cas de CLA_Console, on personnalise la valeur de retour de la commande ainsi que la terminaison (erreur ou pas) de la commande :


// Déclaration de CLA_Console
mproc_Reception    est une Procédure
mproc_FinCmd       est une Procédure

// Affectation des procédures abonnées. Si nécessaire on prend référence sur une procédure qui n'est pas dans la classe... qui pourra être lancée le cas échéant.
PROCEDURE Constructeur(lproc_Reception est une Procédure = Null, lproc_FinCmd est une Procédure = Null)
SI lproc_Reception<>Null ALORS :mproc_Reception = lproc_Reception
SI lproc_FinCmd<>Null ALORS :mproc_FinCmd = lproc_FinCmd

// Exécute la procédure de terminaison de la ligne de commande (procédure abonnée)
PROCEDURE ExécuterCmd()
//... Fin de méthode, après avoir récupéré le code de sortie de la commande
SI :mproc_FinCmd<>Null ALORS :mproc_FinCmd()

Commande exécutée