c#重写键盘按键

本文介绍如何使用C#和PInvoke技术调用Win32 API中的keybd_event函数来模拟键盘按键事件,例如实现快捷键功能。文章通过具体代码示例展示了如何模拟Enter和Tab键的按下与释放,以及如何响应F2键执行特定操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 using ClassLibrary.Win32;
using System.Runtime.InteropServices;



//快捷键
        [DllImport("user32.dll", EntryPoint = "keybd_event")]
        public static extern void keybd_event(
        byte bVk, //虚拟键值
        byte bScan,// 一般为0
        int dwFlags, //这里是整数类型 0 为按下,2为释放
        int dwExtraInfo //这里是整数类型 一般情况下设成为0
        );
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if ((msg.Msg == (int)WindowMessage.WM_KEYDOWN) || (msg.Msg == (int)WindowMessage.WM_SYSKEYDOWN))
            {
                switch (keyData)
                {
                    case Keys .Enter:
                        keybd_event((byte)Keys.Tab, 0, 0, 0);
                        break;
                    case Keys.F2:
                        if (MessageBoxHelper.ShowQuestion("确定保存?") == DialogResult.Yes)
                        {
                            btnQuery_Click(null, null);
                        }
                        break;
                    default:
                        break;
                }
            }
            return base.ProcessCmdKey(ref msg, keyData);
        } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值