WinIO驱动级模拟键盘 C#

本文介绍了使用WinIO驱动级方法进行键盘输入模拟的C#代码实现,特别适用于需要在密码输入等场景下操作。通过调用WinIo32.dll库,实现了KeyDown、KeyUp、KeyDownUp等函数,确保键盘输入能在任何情况下生效。

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

最近做一个项目用到键盘输入,试了很多种普通的模拟键盘输入,都是实现不了,特别是到输入密码这块,根本输入不了,最后用到了这个WinIo驱动级的输入才搞定的,以下是具体代码:

 

 #region 驱动级键盘输入定义

        //键盘输入

        //  public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); 

        //[DllImport("User32.dll")]
        //public static extern void keybd_event(Byte bVk, Byte bScan, Int32 dwFlags, Int32 dwExtraInfo);

        //private const int KEYEVENTF_KEYUP = 2;


        //winio开始
        public const int KBC_KEY_CMD = 0x64;
        public const int KBC_KEY_DATA = 0x60;
        [DllImport("WinIo32.dll")]
        public static extern bool InitializeWinIo();
        [DllImport("WinIo32.dll")]
        public static extern bool GetPortVal(IntPtr wPortAddr, out int pdwPortVal,
                    byte bSize);
        [DllImport("WinIo32.dll")]
        public static extern bool SetPortVal(uint wPortAddr, IntPtr dwPortVal,
                    byte bSize);
        [DllImport("WinIo32.dll")]
        public static extern byte MapPhysToLin(byte pbPhysAddr, uint dwPhysSize,
                        IntPtr PhysicalMemoryHandle);
        [DllImport("WinIo32.dll")]
        public static extern bool UnmapPhysicalMemory(IntPtr PhysicalMemoryHandle,
    &

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值