API——keybd_event()

今天我们来用API  keybd_event()模拟键盘按键。本次我们使用C#作为编程语言。我们通过模拟键盘按键可以实现很多功能,例如:

那我们先来认识一下keybd_event()吧:

[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);

先来科普一下:

打开任务视图        Win + Tab

运行                       Win + R

文件资源管理器      Win + E

显示桌面                 Win + D

Windows徽章键 是 Keys.LWin

Tab键 是 Keys.Tab

R, E, D键 分别是 Keys.R, Keys.E, Keys.D

我们来看一下参数:

uint dwFlags:0为按下,2为释放

uint dwExtraInfo:一般设为0

好了,上代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Task_view
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        [DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
        public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
        private void button1_Click(object sender, EventArgs e)
        {
            keybd_event(Keys.LWin,0,0,0);
            keybd_event(Keys.Tab, 0, 0, 0);
            keybd_event(Keys.LWin, 0, 2, 0);
            keybd_event(Keys.Tab, 0, 2, 0);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            keybd_event(Keys.LWin, 0, 0, 0);
            keybd_event(Keys.R, 0, 0, 0);
            keybd_event(Keys.LWin, 0, 2, 0);
            keybd_event(Keys.R, 0, 2, 0);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            keybd_event(Keys.LWin, 0, 0, 0);
            keybd_event(Keys.E, 0, 0, 0);
            keybd_event(Keys.LWin, 0, 2, 0);
            keybd_event(Keys.E, 0, 2, 0);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            keybd_event(Keys.LWin, 0, 0, 0);
            keybd_event(Keys.D, 0, 0, 0);
            keybd_event(Keys.LWin, 0, 2, 0);
            keybd_event(Keys.D, 0, 2, 0);
        }
    }
}

备注:Button1,2,3,4就是窗体上的:打开任务视图,运行,文件资源管理器,显示桌面

是不是很简单?

好了那我们今天就到这里啦,下期见!


API——keybd_event()
https://www.leonxie.cn/archives/keybd_event
作者
LeonXie
发布于
2025年05月19日
更新于
2025年05月19日
许可协议