Heim > Backend-Entwicklung > C++ > Wie kann ich umgeleitete Konsoleneingaben in C# erkennen?

Wie kann ich umgeleitete Konsoleneingaben in C# erkennen?

DDD
Freigeben: 2025-01-12 17:02:42
Original
663 Leute haben es durchsucht

How Can I Detect Redirected Console Input in C#?

Bestimmen umgeleiteter Konsoleneingaben in C#-Anwendungen

Konsolenanwendungen sind stark auf Eingabe-/Ausgabevorgänge angewiesen. Allerdings kann die Quelle dieser Eingabe – sei es eine Tastatur oder ein umgeleiteter Stream (z. B. eine Datei) – das Anwendungsverhalten dramatisch verändern. Dieser Artikel zeigt, wie umgeleitete Konsoleneingaben in C# effektiv erkannt werden.

Überprüfung auf Weiterleitung

Die einfachste Methode verwendet die Funktion FileType(). Eine Hilfsklasse vereinfacht diese Prüfung:

<code class="language-csharp">public static class ConsoleHelper {
    public static bool IsInputRedirected() {
        return FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin));
    }
}</code>
Nach dem Login kopieren

Umsetzung

Um den Helfer zu nutzen, rufen Sie einfach an:

<code class="language-csharp">bool isRedirected = ConsoleHelper.IsInputRedirected();</code>
Nach dem Login kopieren

Ein true-Ergebnis zeigt an, dass die Eingabe von einer anderen Quelle als der Tastatur stammt (z. B. einer Datei).

zugrunde liegende native Methoden

Der Helfer nutzt diese Win32-API-Funktionen:

  • FileType: Listet Dateitypen auf (Unbekannt, Datenträger, Zeichen, Pipe).
  • StdHandle: Stellt Standardhandles dar (Stdin, Stdout, Stdderr).
  • GetFileType: Ruft den Typ eines bestimmten Handles ab.
  • GetStdHandle: Ruft ein Handle für ein Standardgerät ab.

.NET 4.5 und spätere Vereinfachung

.NET Framework 4.5 und spätere Versionen bieten eine integrierte, prägnantere Methode:

<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
Nach dem Login kopieren

Dies gibt direkt einen booleschen Wert zurück, der den Umleitungsstatus angibt.

Durch den Einsatz dieser Techniken können Entwickler robuste Konsolenanwendungen erstellen, die ihre Funktionalität basierend auf der Eingabequelle anpassen und so die Benutzererfahrung und Anwendungsflexibilität verbessern.

Das obige ist der detaillierte Inhalt vonWie kann ich umgeleitete Konsoleneingaben in C# erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage