Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengesan Pengalihan Input (Papan Kekunci lwn. Fail) dalam C#?

Bagaimanakah Saya Boleh Mengesan Pengalihan Input (Papan Kekunci lwn. Fail) dalam C#?

DDD
DDDasal
2025-01-12 17:11:45500semak imbas

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

Menentukan Sumber Input dalam Aplikasi Konsol C#

Banyak aplikasi konsol memerlukan membezakan antara input papan kekunci dan input yang diubah hala daripada fail. Ini penting untuk menyesuaikan gelagat aplikasi berdasarkan asal input.

Pendekatan Paling Cekap

Kaedah paling berkesan untuk mengesan pengalihan input melibatkan penggunaan Windows FileType() fungsi API melalui P/Invoke. Kelas pembantu berikut memudahkan proses ini:

<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>

Pelaksanaan

Menyemak input diubah hala adalah mudah:

<code class="language-csharp">bool isRedirected = ConsoleEx.IsInputRedirected;</code>

Keupayaan .NET 4.5 Dipertingkat

Perlu ambil perhatian bahawa versi .NET 4.5 dan yang lebih baru menyertakan fungsi terbina dalam untuk tujuan ini. Kelas pembantu tidak diperlukan; sebaliknya, gunakan:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Pengalihan Input (Papan Kekunci lwn. Fail) dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn