Page 1 sur 1

Fermeture d'une console trop rapide

Publié : mer. 05/sept./2007 10:07
par pastor
Bonjour à tous,

Un problème curieux à la fermeture d'une console, voici le code :

Code : Tout sélectionner

;Ouverture de la console
OpenConsole()
                                 
;Boucle pour éviter une fermeture automatique de la console à la fin, saisir "Escape" ou "Enter" pour sortir.
PrintN ("")
PrintN ("Appuyer sur ESCAPE ou ENTER pour fermer...")

Repeat 
Until GetAsyncKeyState_( #VK_ESCAPE ) Or GetAsyncKeyState_( #VK_RETURN )

;Fermeture de la console
CloseConsole()

End
Lorsque je lance le prog depuis le compilateur (F5) de Purebasic, j'ai bien le message : Appuyer sur ESCAPE ou ENTER pour fermer, c'est bon.

Par contre, si je crée un exécutable, que j'ouvre une fenêtre MSDOS, que je lance mon exécutable depuis la console, alors il m'ouvre une console qu'il referme aussi tot.

Dans ce cas, la boucle :

Code : Tout sélectionner

Repeat 
Until GetAsyncKeyState_( #VK_ESCAPE ) Or GetAsyncKeyState_( #VK_RETURN )
ne fonctionne pas ?!

Laurent

Publié : mer. 05/sept./2007 10:32
par pastor
Pour info, si je supprime la condition :

Code : Tout sélectionner

Or GetAsyncKeyState_( #VK_RETURN )
Ca marche, en faite, je constate que pour lancer le programme je fais ENTER et il va tellement vite, qu'il me "chope" le ENTER et termine le programme dans la foulée.

Mon ordi est trop rapide :lol: va falloir que j'achète une machine moins puissante...

J'ai essayé de mettre du delay(1000) mais ça n'aide en rien.

Sinon y a t'il un moyen de vider le buffer du clavier ou de trouver une solution pour que le ENTER fonctionne à la fermeture ?

Laurent

Publié : mer. 05/sept./2007 11:12
par Backup
.....

Publié : mer. 05/sept./2007 11:35
par pastor
Merci Dobro,

Ca marche effectivement, et j'aime bien la petite animation.

Tu est un chef 8)

A+

Laurent