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