PC SOFT
ONLINE REPOSITORY
FOR WINDEVWEBDEV AND WINDEV MOBILE

Home |  | Sign in | English US
classe cConsole (exploitation console windows)
Published by Jurassic Pork
in the category Tools
New features
Description
Cette classe est basée sur la classe WD7DOS créée par drcharly93 et romu, reprise par Nicolas Compain (adaptation 32 bits 64 bits). Elle permet d'exécuter des commandes win32 console (et non pas DOS comme on a toujours tendance à le dire) sans qu'une fenêtre s'ouvre pour l'utilisateur et avec possibilité d'exploiter le texte renvoyé par la commande.
Par rapport à la classe WD7DOS elle apporte les modifications suivantes :
Définition de procédures de réception et de fin de commande -> ProcReception ProcFinCmd
Gestion de la conversion de texte OEM vers ANSI (pour les problèmes d'accents en particulier) -> SortieAnsi
Une procédure de lecture de l'état de la commande -> LireEtat
Le code Retour de la commande ou un code d'erreur interne est renvoyé.
Une méthode d'exécution en mode asynchrone en utilisant un thread -> ExécuterCmdAsync.
Amélioration des performances du pipe de lecture en utilisant un buffer de 4096 octets (au lieu de 256).

En mode d'exécution normale (ExécuterCmd) des procédures sont disponibles :
1 - procReception pour lire à la volée ce qu'envoie la commande exécutée.
2 - procFinCmd quand la commande est terminée.

En mode d'exécution asynchrone (ExécuterCmdAsync) les procédures précédentes ne fonctionnent pas. L'avantage du mode asynchrone c'est de ne pas geler l'IHM en cas d'exécution de commande avec blocage en attente de timeout (comme par exemple un "net use" sur une machine qui ne répond pas).

Une méthode d'arrêt (ArrêterCmd) permet d'interrompre une commande en cours.

En cas de commande native de l'interpréteur de commande comme par exemple "dir" ne pas oublier de mettre "cmd /c " avant la commande.

La classe est fournie comme cela (as is). L'utilisation de cette classe est à vos risques et périls et je décline toute responsabilité en cas de problèmes ou de préjudices rencontrés.

Pour illustrer ceci un projet exemple (en Windev 12 pour que l'on puisse l'utiliser à partir de windev 12) contenant la classe cConsole est fourni.


Illustrations, screen shots
none
none
User reviews
(To evaluate this resource, click 'Write a review')
meftah
comment intégrer la bibliothèque OpenCv dans windev.
IDV-LOGICIEL
j'ai une ligne de commande avec le caractère "&" a passer et il n'en veux pas avec la class
en ligne de commande sous PowerShell sa passe sans problème ...
Invoke-RestMethod -Uri "https://maps.googleapis.com/maps/api/elevation/json?locations=43.78653466533594,3.533297211608888&key=uneclégooglevalide"

c'est le & qu'il ne veux pas dans la class ?
MJMS Informatique
Bonjour, j'utilise cette class, mais une fois le projet fini, j'ai passé l'application en unicode car j'ai des caractères de différent pays, et la elle ne fonctionne pas, message renvoyé : Erreur dans CreateProcessA. Possibilité : Fichier ou commande non trouvé.

Une solution pour convertir la class en unicode ?
Nicolas COMPAIN
@DrCharly93 il n’y a pas de quoi. Je ne savais même pas qu'elle avait été reprise ici. Je viens de le découvrir.
J'en profite pour vous remercier également.
Jurassic Pork
Contrairement à ce que j'indique dans la description les procédures procReception et procFinCmd fonctionnent en mode asynchrone. Il faut les utiliser dans des procédures globales et non locales.
DrCharly93 (WDForge.
Merci pour cette évolution
ABOUT
RATING:
51(1)
DOWNLOADS:
1,855
PUBLISHED:
July 09, 2012
VERSION:
CONCERNS:
WINDEV
Minimum version: WD12 et +
SIZE:
148.1 KB
OF SAME DEVELOPER