2009-04-15 9 views
1

J'ai une tâche intéressante: écrire un programme qui capture les entrées du programme appelé Redmon. Il s'agit essentiellement d'une imprimante virtuelle qui redirige la sortie vers un programme.Redmon rediriger vers une application .NET Windows.Forms

J'ai installé Redmon et créé une application winforms pour attraper la sortie. Mais je suis coincé ici. J'ai vérifié ce que mon programme reçoit et ce n'est rien au niveau du paramètre (la chaîne [] sur les arguments principaux est vide). Redmon démarre mon programme, mais il s'arrête. Je suppose que je devrais lire en quelque sorte le contenu qu'il envoie au programme, mais comment?

+0

Pouvez-vous montrer la configuration de Redmon et du code? –

+0

En configuration, tout est standard: rediriger le port vers le programme: mytest.exe, et runasuser vérifié. Mais Marc l'a résolu, merci. – Biri

Répondre

3

Je suppose que Redmon flux vers stdin - auquel cas vous aurez à lire dans le flux d'entrée - soit via Console.In (si elle est basée sur les caractères), ou Console.OpenStandardInput (pour le flux binaire brut accès).

Comme un exemple trivial de quelque chose qui STDIN (il lit les lignes de texte, inversant chacun):

static void Main() { 
    WriteReversedLines(Console.In); 
} 
static void WriteReversedLines(TextReader reader) { 
    string line; 
    while ((line = reader.ReadLine()) != null) { 
     char[] chars = line.ToCharArray(); 
     Array.Reverse(chars); 
     Console.WriteLine(chars); 
    } 
} 

Il est évident que vous devez traiter des données binaires un peu différemment, mais sur le plan conceptuel, il est similaire.

+0

Puis-je utiliser Console.In également à partir d'une application Windows.Forms? J'essaie ça. – Biri

+0

Il y a très peu de différence, en réalité, entre une application winform et une console ... alors oui, vous devriez toujours pouvoir lire depuis stdin. –

+0

Merci. Je cherchais à lire depuis stdin en winforms mais je n'ai rien trouvé. C'est la raison. :-) – Biri

Questions connexes