我想在我的程序运行时按住一个键,所以我这样做了:
public partial class Form1 : Form
{
[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
const int KEY_DOWN_EVENT = 0x0001; //Key down flag
const int KEY_UP_EVENT = 0x0002; //Key up flag
byte VK_UP = 0x26;
public Form1()
{
InitializeComponent();
keybd_event(VK_UP, 0, KEY_DOWN_EVENT, 0);
}
void gkh_KeyDown(object sender, KeyEventArgs e)
{
Debug.WriteLine(e.KeyCode.ToString()); //it only executes once
}
但它只按一次键。我错过了什么?
不敢相信这在 C# 上是不可能的!!连德尔福都能做到!!
我真正想做的是:
假设我按下键'a',几秒钟后我按下键'b'。当我松开键“b”时,我希望“a”继续显示在屏幕上。