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
Lepaskan: 2025-01-12 17:11:45
asal
500 orang telah melayarinya

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>
Salin selepas log masuk

Pelaksanaan

Menyemak input diubah hala adalah mudah:

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

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan