📅  最后修改于: 2023-12-03 15:09:14.057000             🧑  作者: Mango
在 C# 中,获取键盘输入的方式有多种。本文将介绍如何使用 Console 类、Win32 API 和 WPF 进行统一获取键盘输入。
在 C# 中,Console 类可以用于控制台应用程序中输出和接收用户输入。接收用户输入需要调用 Console.ReadLine() 方法。具体代码如下:
string input = Console.ReadLine();
Console.ReadLine() 方法会阻止程序执行,直到用户输入一条文本。用户输入的文本会作为方法的返回值。如果用户输入的文本中有多行,只会返回第一行。
如果需要在 Windows 窗口程序中获取键盘输入,可以使用 Win32 API。具体代码如下:
using System.Runtime.InteropServices;
public partial class MainWindow : Window
{
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Int32 i);
private void Window_KeyDown(object sender, KeyEventArgs e)
{
Int32 keyCode = e.KeyInterop.VirtualKeyFromKey(e.Key);
Int32 state = GetAsyncKeyState(keyCode);
if ((state & 0x8000) > 0)
{
// 按键按下
}
else
{
// 按键松开
}
}
}
在上面的代码中,GetAsyncKeyState() 方法可以获取按键状态。如果按键被按下,它的返回值的最高位会被设置为 1。
在 WPF 应用程序中,可以使用 KeyDown 和 KeyUp 事件来获取键盘输入。具体代码如下:
public partial class MainWindow : Window
{
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
// Enter 键被按下
}
}
private void Window_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
// Enter 键被松开
}
}
}
在上面的代码中,KeyDown 和 KeyUp 事件可以分别获取按键被按下和松开的状态。可以根据需要监听不同的按键事件,并在事件处理程序中执行相应的操作。
以上就是在 C# 中获取键盘输入的三种方式。可以根据实际需求选择最适合的方法。