application console vs service [win32 vs6] - C++ - Programmation
Marsh Posté le 28-01-2003 à 15:05:51
pourquoi aurait elle besoins de le savoir ???
deja les services n'existe que pour les os de type NT donc pas de service pour win 9X
Marsh Posté le 28-01-2003 à 16:55:43
PassPassLeOuinj a écrit : pourquoi aurait elle besoins de le savoir ??? |
1. c'est bien de le savoir car:
- si le process n'est attaché à aucune console, il n'est pas nécessaire de rediriger des flux vers la sortie standard. C4est fastidieux et surtout inutile.
- de même, pas la peine d'attendre des informations (une confirmation, par exemple) sur l'entrée standard.
- on peut, le cas échéant, décider de rediriger les messages importants vers l'observateur d'évènement de NT/2000.
2. j'avoue n'avoir pas pensé ne serait-ce qu'une seule seconde à win9x :-) c'est pour du winnt/2000.
Marsh Posté le 28-01-2003 à 18:47:29
Tu peux peut etre te debrouiller en testant si ton handle stdin est valide. Je peux pas trop t'éclairer, car les services je connais pas.
Mais si un service ne possède pas de console alors ca doit etre jouable.
La console peut etre héritée de l'appli qui lance ton prog, le handle est passé via une structure (STARTUPINFO je crois) passe en parametre a ton appli (structure analysee par le code qui appelle WinMain)
Regarde de ce cote ainsi que du cote de GetStdHandle.
Apres verif c'est bien dans cette structure, champ hStdInput.
http://msdn.microsoft.com/library/ [...] fo_str.asp
Mais GetStdHandle(STD_INPUT_HANDLE) devrait faire l'affaire.
Si ca renvoit INVALID_HANDLE_VALUE c'est que t'es pas lancé depuis la console, sauf si Windows se charge dans ce cas de t'allouer automatiquement une console (comme pour une appli console classique). Pour les services, je sais pas comment ca se passe. Test pour savoir.
http://msdn.microsoft.com/library/ [...] handle.asp
Marsh Posté le 29-01-2003 à 10:50:00
HelloWorld a écrit : Tu peux peut etre te debrouiller en testant si ton handle stdin est valide. Je peux pas trop t'éclairer, car les services je connais pas. |
Ca fonctionne bien ainsi.
merci.
Marsh Posté le 28-01-2003 à 14:21:38
Bonjour,
sous win32, comment une application peut elle savoir si elle est lancée depuis une console ou en temps que service? J'ai commencer à explorer un peu le msdn, mais sans grand succès.
merci.