[Résolu] Détection fermeture console

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

[Résolu] Détection fermeture console

Message par Robrock55 »

Bonjour à tous !

Dans le cadre d'un jeu en réseau, je génère une console coté serveur pour y répertorier toutes les actions, de la même manière que pour Minecraft.

Or voici le problème, si je ferme la console à la main, par la petit croix, fin du programme. Or, j'aimerais le cas échéant exécuter quelques instructions notamment l'envoie d'un message aux clients.

A première vue, impossible de base dans PureBasic. Je cherche donc une combin, ou éventuellement un code avec les API de Windows, bref. HELP :)
Dernière modification par Robrock55 le dim. 08/juil./2012 20:50, modifié 1 fois.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Détection fermeture console

Message par Kwai chang caine »

Code du grand SPARKIE :wink:

Code : Tout sélectionner

Global exit = #False 

Procedure HandlerRoutine(msg) 
 exit = #True
 ProcedureReturn exit 
 EndProcedure 
 
OpenConsole() 
SetConsoleCtrlHandler_(@HandlerRoutine(), 1) 

Repeat 
 Delay(250) 
 
Until Inkey() = Chr(27) Or exit

SetConsoleCtrlHandler_(@HandlerRoutine(), 0) 

If Exit
  Debug "Console fermée"
 EndIf
 
End
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Détection fermeture console

Message par Robrock55 »

Génialissime ! Merci !
Puis-je oser demander une explication ? Surtout ce SetConsoleCtrlHandler_() ? D'où sort cette fonction ? Rapidement sur internet, j'ai vu que c'était une fonction C++ =O
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Détection fermeture console

Message par Backup »

en Purebasic les API window s'appel avec leur nom suivi de "_"
SetConsoleCtrlHandler_() ; est en fait : SetConsoleCtrlHandler() ; qui est une API window
http://msdn.microsoft.com/en-us/library ... 85%29.aspx


utilisé aussi en C++ et d'autres langages
Robrock55
Messages : 65
Inscription : lun. 01/févr./2010 17:04
Localisation : Meuse
Contact :

Re: Détection fermeture console

Message par Robrock55 »

Merci de la réponse !
Je vais tacher de décoder la doc que tu m'as fourni Dobro.
Merci à vous, je le redirais à chaque fois, mais cette communauté est quand même incroyablement rapide et efficace ! :D
Répondre