9
votes

Quelle est exactement une "console"?

J'essaie d'écrire une demande de console. Il a sa console d'origine, nomma la console A. et je souhaite que cette application effectue les choses suivantes via C #:

  1. Ouvrez une autre console B dans un autre thread, puis obtenez-en une entrée à partir d'un et de la sortie à B;
  2. Tapez une commande A dans A, telle que DIR et montrez la sortie en B;

    En faisant les choses ci-dessus (toujours pas encore terminée. X_x), je me trouve manquant de la compréhension de quelle fenêtre de console est et comment il est attribué à une application de console , surtout la toute première console lorsque mon application de console commence à exécuter . Quelqu'un pourrait-il verser une lumière sur moi?

    est la fenêtre de la console physiquement une zone de mémoire dans la mémoire vidéo? Ou autre chose? Les threads différents dans le même processus pourraient-ils avoir une console différente de ses propres E / S?

    Merci beaucoup.

    Maintenant, j'utilise une application de console pour lancer une autre application de console dans un nouveau processus. Ainsi, je peux avoir 2 émissions de consoles en même temps.

    Ma compréhension est que, pour Windows OS, une console est une fenêtre spéciale, et c'est une ressource système attribuée à l'application sans interface utilisateur nécessaire. Windows OS gère le câblage entre la fenêtre de la console préparée par le système avec notre application UI-Moins.


1 commentaires

La console est la partie de l'ordinateur qui présente les lumières et les commutateurs, et peut-être un lecteur de bande de papier, sur les modèles les plus coûteux.


5 Réponses :


2
votes

Une application de console n'a qu'une seule fenêtre. Il ne dispose pas de fonctions de gestion de la fenêtre afin de créer des "consoles" des enfants.

Vous pouvez démarrer des applications de console supplémentaires, mais ce sont des entités distinctes.


2 commentaires

@Johannes - Vous devriez poster cela comme une réponse car cela semble être ce que l'OP est après.


@Johannes Rossel: Vous pouvez créer plusieurs consoles, mais votre processus ne peut être lié qu'à un à la fois.



6
votes

en termes Windows, une console est une fenêtre d'interface graphique textuelle que vous voyez lorsque vous exécutez "cmd.exe". Il vous permet d'écrire du texte et de lire du texte à partir d'une fenêtre sans la fenêtre ayant un autre chrome UI, telles que des barres d'outils, des menus, des onglets, etc.

Pour commencer, vous voudrez charger Visual Studio, Créez un nouveau projet et choisissez «Application de la console». Changez le code de la chaudronique que Visual Studio produit: P>

using System;
using System.Text;

namespace MyConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Hello, world!");
            Console.ReadKey();
        }
    }
}


8 commentaires

"est une interface graphique textuelle" Ummmm ....est une interface graphique (interface utilisateur graphique) destinée à être graphique, donc une console n'est pas une interface graphique (sans graphisme complètement, escompte de l'art ASCII). C'était tout le point de distinguer quelque chose comme ayant une interface graphique, il n'avait pas une interface basée sur l'ASCII.


La console est typiquement appelée CLI (interface de ligne de commande) ou CLUI (interface utilisateur de la ligne de commande)


Ongle, peut-être que "la fenêtre de l'interface utilisateur textuelle" a peut-être été une meilleure façon de la mettre. Mes doigts ont collé le g de là sans que je pense même à cela, ou réalisant! =)


Hmm, mon livre préféré sur SO (Tanenbaum) appelle cela a shell . Je pense une console est un shell exécutant de l'intérieur d'une interface graphique.


@Bruno - Oui, les programmes de console seront généralement exécutés dans une coquille lorsque vous utilisez un système d'exploitation basé sur une interface graphique. Une coquille est juste un fonctionnement différent Environment destiné à fournir une prise en charge de l'application qui n'est généralement pas disponible dans l'OS hôte (dans ce cas, il fournit une ligne de commande avec STDIN / STDOUT ainsi que quelques-unes autres dons comme des fonctionnalités).


Ma compréhension est que, pour Windows OS, une console est une fenêtre spéciale, et c'est une ressource système attribuée à l'application sans interface utilisateur nécessaire. Windows OS gère le câblage entre la fenêtre de la console préparée par le système avec notre application sans UI.


Ongle: Merci ... +1, beaucoup plus complet que ce que j'ai dit à l'Op.


Hmmm .. une console est une interface utilisateur CUI ou de caractères car je me souviens de lire dans un ancien livre d'ordinateur. Mais aujourd'hui, l'interface graphique et de l'interface utilisateur sont devenues presque synonymes que c'est si commun et tout.



1
votes

Non. C'est un sous-système Windows GUI. À Winapi, il existe des fonctions pour travailler avec la console: http: //msdn.microsoft.com/en-us/library/ms682073%28vs.85%29.aspx


0 commentaires

1
votes

Console (OS) est un processus (entraînant une ou plusieurs fils d'exécutions, tous partageant le même espace mémoire) et ce processus a:

  • entrée standard (un flux d'octets d'entrée), ce que vous avez la clé de
  • Sortie standard (un flux d'octets de sortie), quel programme imprime
  • Erreur standard (un flux d'octets de sortie), quel programme est imprimé lorsqu'il se plaint de quelque chose

    Donc, si vous souhaitez créer une autre console (à partir de .NET) et liez les entrées / sorties que je comprends que vous devez créer un processus (exécutant "cmd.exe" par exemple).

    Je ne connais pas l'API de .NET pour la manipulation de processus, mais si c'est comme Java, vous pouvez connecter STDIN, OUT et ERR afin que vous puissiez jouer avec votre processus créé à partir de l'original.


0 commentaires

1
votes

Une application Windows peut avoir une console ou aucune console, elle ne peut avoir plus d'un. Voir la documentation pour ALLOCKONSOLE . La console est essentiellement une émulation des journées «pré-windows» quand il y aurait littéralement une «console de contrôle», c'est-à-dire un clavier et un écran attaché à un ordinateur central. Pour faire ce que vous voulez, vous pouvez accéder un autre processus avec sa propre console et communiquer entre les deux ou faire une application d'interface graphique qui ressemble à une fenêtre de la console.


0 commentaires