Maison > développement back-end > C++ > Comment puis-je détecter la redirection d'entrée (clavier ou fichier) en C# ?

Comment puis-je détecter la redirection d'entrée (clavier ou fichier) en C# ?

DDD
Libérer: 2025-01-12 17:11:45
original
500 Les gens l'ont consulté

How Can I Detect Input Redirection (Keyboard vs. File) in C#?

Détermination de la source d'entrée dans les applications de console C#

De nombreuses applications de console nécessitent de faire la distinction entre la saisie au clavier et la saisie redirigée depuis un fichier. Ceci est essentiel pour adapter le comportement de l'application en fonction de l'origine de l'entrée.

L'approche la plus efficace

La méthode la plus efficace pour détecter la redirection d'entrée consiste à utiliser la fonction API Windows FileType() via P/Invoke. La classe d'assistance suivante simplifie ce processus :

<code class="language-csharp">public static class ConsoleEx
{
    public static bool IsInputRedirected => FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin));

    // P/Invoke declarations (omitted for brevity)
}</code>
Copier après la connexion

Mise en œuvre

La vérification des entrées redirigées est simple :

<code class="language-csharp">bool isRedirected = ConsoleEx.IsInputRedirected;</code>
Copier après la connexion

Capacités .NET 4.5 améliorées

Il est important de noter que .NET 4.5 et les versions ultérieures incluent des fonctionnalités intégrées à cet effet. La classe d'assistance n'est pas nécessaire ; utilisez plutôt :

<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal