2016-08-17 1 views
0

J'ai besoin d'une application console pour enregistrer certains événements d'une autre application externe. L'objectif de l'application Console est d'afficher à l'écran ce que l'application externe fait à chaque étape. Cette application externe peut uniquement appeler un exe avec des arguments.Console C# même sortie à partir de plusieurs fichiers batch

L'objectif est:

  • externe font certains emplois
  • Ex appel Console avec args pour afficher
  • externes ne autre emploi
  • Ex appel Console avec args pour afficher
  • ..

Mais l'application console est fermée et rouverte à chaque appel. J'ai besoin d'un truc pour avoir une application de console en attente de messages et de l'afficher sans fermer, mais je ne sais vraiment pas où commencer à regarder.

Il peut s'agir d'une solution très légère, sans nécessiter d'installation.

Merci.

Modifier

l'application externe (fonctionnant silencieusement) ne peut effectuer une commande « programme d'exécution ... » à chaque étape (une ligne de commande à EXE avec des paramètres).

À chaque étape, je dois envoyer à mon application de console quelques informations pour écrire ouput à l'utilisateur et un peu plus de choses. Je veux une sortie unique, pas une nouvelle application Console à chaque étape ...

L'idée principale est d'avoir une application de console en arrière-plan en attente des messages de l'application externe pour envoyer des informations.

Son genre d'application de console de lauch avec des paramètres, ne l'arrêtez pas et rappelez-le même avec de nouveaux paramètres, mais je ne pense pas que ce soit possible.

Je ne peux pas installer les outils sur les machines, becauses solution peut être déployée sur de nombreux appareils dans mon entreprise, je ne peux pas installer des services ou des bases de données sur chaque ..

Quel genre de solution utiliserez-vous? Une application de console peut-elle attendre les messages entrants et les attraper?

+3

Je ne vois aucun point d'interrogation. Quel est exactement votre problème?Qu'avez-vous déjà essayé? –

+1

Ouvrez 'cmd.exe', lancez des applications, écrivez sur stdout, ne fermez pas' cmd.exe'? :) – bzlm

+0

myconsoleapp donc il prend des paramètres, et l'exécute, et enregistre les résultats? – BugFinder

Répondre

0

Il y a un certain nombre d'approches différentes à cela;

  • Inter Process Communication - Peut être surpuissant ici
  • fichiers partagés - Simple mais sujette aux erreurs
  • Autres stockage partagé (base de données ou service de messagerie) - serait probablement ma façon recommandée

aide la méthode Base de données, votre application insérera 'logs' de chaque travail dans une table de base de données. L'application Console peut alors boucler avec une simple boucle While, en lisant les lignes et en les affichant. Ceci est plus évolutif car vous pouvez utiliser les journaux pour, par exemple, redémarrer des travaux, etc.

+0

J'ai mis à jour ma question parce que j'ai vu quelques informations manquent :) Fichiers partagés: Dans mon cas chaque étape du programme externe peut prendre un moment, donc je ne peux pas faire une pause et Je peux éventuellement avoir une boucle infinie! Inter processus: est-ce que c'est «facile à utiliser»? Base de données: Je ne peux pas installer la base de données sur chaque périphérique. Je vais me tourner vers les services de messagerie, je n'ai jamais implémenté cela. Si cela correspond à mes exigences, je vais valider votre réponse, merci! – Manea

+0

En utilisant une base de données - vous utiliseriez une base de données centrale, et tous les clients communiqueraient simplement avec lui sur le réseau, donc vous n'aurez pas besoin d'installer une base de données sur chaque machine ... Le principal est le même en utilisant des fichiers partagés ajouterait simplement les données à afficher dans la base de données ou le fichier, et l'application de la console vérifierait simplement périodiquement la base de données ou le fichier et afficherait toutes les nouvelles données qui ont été ajoutées depuis la dernière vérification. – Milney

+0

Désolé j'ai manqué une autre information, il doit fonctionner dans un état hors-ligne! Sinon, une base de données centralisée avec services est une bonne solution. J'ai juste besoin d'un moyen simple d'avoir une communication entre mes 2 applications sans outils externes, et une sortie console unique, mais c'est vraiment plus difficile que je le remercie au début. – Manea