web-dev-qa-db-fra.com

Puis-je obtenir des fonctionnalités de copier / coller à partir d'une fenêtre de console C #?

Je développe une application console en C # et je me demandais s'il y avait un moyen d'intégrer la fonctionnalité "copier-coller" ou "marquer-coller" dans mon application, similaire ou identique à celle de l'invite de commandes Windows standard. Est-ce une chasse à l'oie sauvage ou une simple variable d'application?

37
Simpleton

Merci Sean de m'avoir fait réaliser l'idiotie complète de cette question. Permettez-moi d'être un exemple pour les autres de ne pas sauter dans le train des conclusions.

Sean a souligné que "le copier-coller peut être fait en utilisant la fonctionnalité intégrée de cmd.exe", me faisant reconnaître que, oui, absolument duh, lorsque vous exécutez votre application de ligne de commande dans Windows, cette fonctionnalité est déjà disponible.

J'ai commis une erreur en sautant aux conclusions, car je faisais tous mes tests initiaux avec l'exécution de DEBUG via l'IDE, et vshost ne vous donne pas cette fonctionnalité.

Un rapide "démarrage sans débogage" a révélé ma myopie.

47
Simpleton

J'ai copié du texte depuis la fenêtre de la console et l'ai collé plusieurs fois dans une autre source.

Il est là par défaut dans une application console;

Cliquez avec le bouton droit sur la bordure de la console:

Step 1

Sélectionnez Edition> Marquer:

Step 2

Faites glisser le texte souhaité à l'aide de la souris (ou utilisez les touches fléchées) pour sélectionner le texte souhaité:

Step 3

Encore une fois, faites un clic droit sur la bordure de la console et sélectionnez Édition> Copier:

Step 4

De là, vous pouvez le coller dans une autre application comme vous le feriez avec n'importe quel autre texte.

Cela a été pris à partir d'une application console C # et le seul code entré était la commande pour écrire sur la console, aucun paramètre n'a été modifié.

J'espère que cela t'aides!

64
Jamie Keeling

Je ne sais pas pourquoi cela n'est inclus dans aucune réponse, mais comme Robert H. indiqué dans un commentaire, ce sont des informations absolument utiles, au cas où vous seriez venu ici en recherchant ce problème dans un Environnement VisualStudio :

Exécutez une application console dans le débogueur (F5). Vous ne pouvez pas copier ou coller. Exécutez-le en dehors du débogueur (Control + F5). Maintenant, vous pouvez copier et coller.

A fonctionné à merveille pour moi. Merci Robert H.!

21
z00l

Pour clarifier, le comportement d'invite de commande par défaut ne fonctionne-t-il pas du tout pour vous, ou tout simplement pas comme vous le souhaitez?

D'après ce que je comprends, c'est l'implémentation du terminal qui fournit le comportement copier/coller, et ce qu'il fournit ne correspond pas au reste de Windows. Pour modifier ce comportement, vous devez changer le programme qui implémente le terminal. Voici quelques programmes qui viennent sur une recherche google pour "remplacement d'invite de commandes":
http://www.powercmd.com/
http://sourceforge.net/projects/console/

De ces deux, je pense qu'un de mes amis au travail a essayé "Console". Cela faisait assez de ce qu'il voulait qu'il ne ressentait pas le besoin de continuer à chercher.

Si vous voulez simplement que votre sortie pour ce programme spécifique fonctionne plus comme le reste de Windows, votre autre choix est d'en faire un programme Windows.

Modifier: correction de l'URL de la console. Publiais sur le blog de quelqu'un qui y était lié, avant :)

1

Je suis peut-être en retard, mais il existe un raccourci pour coller du texte dans la fenêtre de la console en c #. Appuyez sur Alt + Espace puis sur 'E' puis sur 'P' et là vous avez votre texte collé dans la fenêtre de la console

1
Raza