c语言键盘按键触发怎么表示

Python015

c语言键盘按键触发怎么表示,第1张

可以用FlexibleButton表示。

FlexibleButton 是一个基于标准 C 语言的小巧灵活的按键处理库,支持单击、连击、短按、长按、自动消抖,可以自由设置组合按键,可用于中断和低功耗场景。

该按键库解耦了具体的按键硬件结构,理论上支持轻触按键与自锁按键,并可以无限扩展按键数量。另外,FlexibleButton 使用扫描的方式一次性读取所有所有的按键状态,然后通过事件回调机制上报按键事件。

核心的按键扫描代码仅有三行,没错,就是经典的 三行按键扫描算法。使用 C 语言标准库 API 编写,也使得该按键库可以无缝兼容任意的处理器平台,并且支持任意 OS 和 non-OS(裸机编程)。

快速体验:

FlexibleButton 库中提供了一个测试例程 ./examples/demo_rtt_iotboard.c,该例程基于 RT-Thread OS 进行测试,硬件平台选择了 RT-Thread IoT Board Pandora v2.51 开发板。

当然你可以选择使用其他的 OS,或者使用裸机测试,只需要移除 OS 相关的特性即可。

如果你使用自己的硬件平台,只需要将 FlexibleButton 库源码和例程加入你既有的工程下即可。

DEMO 程序说明:

该示例程序可以直接在 RT-Thread stm32l475-atk-pandora BSP 中运行,可以在该 BSP 目录下,使用 menuconfig 获取本软件包。

这段代码没问题,我亲自验证过。

或者你尝试我这段代码,效果应该明显:

#include <Windows.h>

#include <stdlib.h>

#include <stdio.h>

int main()

{

// 模拟Alt+Tab

keybd_event(VK_MENU, 0xb8, 0, 0) //Alt 按下

keybd_event(VK_TAB, 0x8f, 0, 0) // Tab 按下

while (1) // 停住观察

keybd_event(VK_TAB, 0x8f, KEYEVENTF_KEYUP, 0) // Tab 释放

keybd_event(VK_MENU, 0xb8, KEYEVENTF_KEYUP, 0) // Alt 释放

return 0

}

keybd_event函数模拟了键盘输入。调用该函数会让系统触发WM_KEYUP或者WM_KEYDOWN事件。

函数原型是:

VOID WINAPI keybd_event(

  _In_ BYTE      bVk,

  _In_ BYTE      bScan,

  _In_ DWORD     dwFlags,

  _In_ ULONG_PTR dwExtraInfo

)

用bioskey()函数可以实现读取键盘的上下左右键

函数原型:int bioskey (int cmd)

说 明:bioskey()的函数原型在bios.h中,即必须包含头文件#include<bios.h>

读取方向键可以用下面的程序啊!

#include<stdio.h>

#include<bios.h>

#define Key_Up 0x4800// 向上方向键

#define Key_Down 0x5000 // 向下方向键

#define Key_Right 0x4d00 // 向右方向键

#define Key_Left 0x4b00 // 向左方向键

void main()

{

int key=bioskey(0)

switch(key)

{

case Key_Up : {printf(" 向上方向键被按下")break}

case Key_Down : {printf(" 向下方向键被按下")break}

case Key_Left : {printf(" 向左方向键被按下")break}

case Key_Right : {printf(" 向右方向键被按下")break}

}

}